App\Repositories\Setting\ConfigMailSetting::all PHP Méthode

all() public méthode

public all ( )
    public function all()
    {
        $driver = $this->reader->getConfig('MAIL_DRIVER');
        $fromAddress = $this->reader->getConfig('MAIL_FROM_ADDRESS');
        $fromName = $this->reader->getConfig('MAIL_FROM_NAME');
        $smtpHost = $this->reader->getConfig('MAIL_HOST');
        $smtpPort = $this->reader->getConfig('MAIL_PORT');
        $smtpEncryption = $this->reader->getConfig('MAIL_ENCRYPTION');
        $smtpUsername = $this->reader->getConfig('MAIL_USERNAME');
        $smtpPassword = $this->reader->getConfig('MAIL_PASSWORD');
        $sendmailPath = $this->reader->getConfig('MAIL_SENDMAIL');
        $from = ['address' => $fromAddress, 'name' => $fromName];
        $mailSetting = new MailSettingEntity();
        $mailSetting->setDriver($driver)->setFrom($from)->setSmtpHost($smtpHost)->setSmtpPort($smtpPort)->setSmtpEncryption($smtpEncryption)->setSmtpUsername($smtpUsername)->setSmtpPassword($smtpPassword)->setSendmailPath($sendmailPath);
        return $mailSetting;
    }

Usage Example

    public function test_Should_GetAllMailSettings()
    {
        $config = <<<EOF
MAIL_DRIVER=smtp
[email protected]
MAIL_FROM_NAME=from_name
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_ENCRYPTION=tls
[email protected]
MAIL_PASSWORD=password
MAIL_SENDMAIL=/usr/sbin/sendmail -bs

EOF;
        $dotenv = vfsStream::newFile('.env')->at($this->rootDir)->setContent($config);
        $dotenvReader = new DotenvReader(new LaravelFilesystem($this->app['files']), vfsStream::url('rootDir/.env'));
        $dotenvWriter = new DotenvWriter(new LaravelFilesystem($this->app['files']), vfsStream::url('rootDir/.env'));
        $configMailSettingRepository = new ConfigMailSetting($dotenvReader, $dotenvWriter);
        $mailSettings = $configMailSettingRepository->all();
        $this->assertEquals('smtp', $mailSettings->getDriver());
        $this->assertEquals('*****@*****.**', $mailSettings->getFrom()['address']);
        $this->assertEquals('from_name', $mailSettings->getFrom()['name']);
        $this->assertEquals('localhost', $mailSettings->getSmtpHost());
        $this->assertEquals(587, $mailSettings->getSmtpPort());
        $this->assertEquals('tls', $mailSettings->getSmtpEncryption());
        $this->assertEquals('*****@*****.**', $mailSettings->getSmtpUsername());
        $this->assertEquals('password', $mailSettings->getSmtpPassword());
        $this->assertEquals('/usr/sbin/sendmail -bs', $mailSettings->getSendmailPath());
    }
ConfigMailSetting