我正在開發一個基於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文件中的參數? 對於控制器,這種方法是否相同?