Zend Framework 3に基づいてサイトを開発していますが、一部のモジュールでは電子メールを送信する必要があります。モジュールサービスとコントローラからのローカルパラメータへのアクセス
私はそうするためにPERL Mailを使用しています。 Amazon SESサービスへの電子メールの送信要求をすべてプロダクションで行う予定で、開発用には無料のgmailアカウントを使用しています。
私のアプリケーションでは、project/config/autoload directory
というファイルにlocal.php
というファイルを使用してローカルにメール設定を保存したいとします。そうすれば、私は開発と生産の両方で異なる構成を持つことができます。
'mail' => [
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => 'mypassword',
]
すべての罰金、私は私のモジュールのサービスやコントローラからこれらのパラメータを取得する方法を知っているドントことを除い:だから、I'veは私のlocal.php
ファイルに次のエントリを作成しました。ここで
module/User/src/service/UserManagerService
にある私は、このパラメータにアクセスする必要があるサービスの一例を、次のとおりです。これらのZF3工場へ
<?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);
}
}
- 私はかなり新しい:このサービスは、工場を持っている
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**
}
}
、サービス、コントローラーなど、私はここで少し失われています。
このサービスでlocal.phpファイルに保存されているパラメータを取得するにはどうすればよいですか? そのアプローチはコントローラで同じですか?