我正在开发一个基于Zend Framework 3的站点,并且在一些模块中我需要发送电子邮件。从模块服务和控制器访问本地参数
我正在使用PERL Mail来这样做。这将使所有的电子邮件发送请求发送到亚马逊SES服务的生产,并为开发我将使用免费的Gmail帐户。
在我的应用程序中,我想以本地方式使用local.php
文件在project/config/autoload directory
处存储邮件配置。通过这种方式,我可以为开发和生产提供不同的配置。所以,从来就创建了以下条目我local.php
文件:
'mail' => [
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => 'mypassword',
]
一切都很好,但我不知道如何从我的服务模块和控制器得到这些参数。
这里是我需要访问这个参数的服务例如,位于module/User/src/service/UserManagerService
:
class UserManager
{
/**
* Doctrine entity manager.
* @var Doctrine\ORM\EntityManager
*/
private $entityManager;
public function __construct($entityManager)
{
$this->entityManager = $entityManager;
}
public function addUser($data)
{
**// Need to access the configuration data from here to send email**
}
}
该服务有一个工厂:
<?php
namespace User\Service\Factory;
use Interop\Container\ContainerInterface;
use User\Service\UserManager;
class UserManagerFactory
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$entityManager = $container->get('doctrine.entitymanager.orm_default');
return new UserManager($entityManager);
}
}
I'm相当新的,这些工厂ZF3 ,服务和管理员,所以我很少迷失在这里。
如何在此服务中获取存储在local.php文件中的参数? 对于控制器,这种方法是否相同?