如何使用第三方提供的服务包
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.8,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
如何使用第三方提供的服务包
因为Symf欧宝娱乐app下载地址ony和所有第三方包配置通过容器和检索服务,您可以轻松地访问它们,甚至使用他们自己的服务。为简单起见,Symfony默认不需要控制器必须欧宝娱乐app下载地址定义为服务。此外,Symfony将整个欧宝娱乐app下载地址服务容器注入到你的控制器。例如,处理信息的存储在用户的会话,Symfony提供了欧宝娱乐app下载地址会话
服务,您可以访问控制器内部标准如下:
1 2 3 4 5 6 7
公共函数indexAction(美元酒吧){美元会话=美元这- >get (“会话”);美元会话- >集(“foo”,美元酒吧);/ /……}
在Sy欧宝娱乐app下载地址mfony中,您将不断地使用Symfony的核心提供的服务或其他第三方包执行任务,比如呈现模板(模板
),发送邮件(梅勒
),或者通过请求堆栈(访问请求的信息request_stack
)。
你可以再进一步通过使用这些服务在服务,您已经创建了您的应用程序。开始通过修改欧宝app在哪里找NewsletterManager
使用真正的Symfony欧宝娱乐app下载地址梅勒
服务(而不是假装的app.mailer
)。也通过模板引擎服务欧宝app在哪里找NewsletterManager
所以它可以通过模板生成电子邮件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ / src / AppBund欧宝app在哪里找le /通讯/ NewsletterManager.php名称空间AppBundle\欧宝app在哪里找通讯;使用欧宝娱乐app下载地址\组件\模板\EngineInterface;类欧宝app在哪里找NewsletterManager{受保护的美元梅勒;受保护的美元模板;公共函数__construct(\ Swift_Mailer美元梅勒,EngineInterface美元模板){美元这- >梅勒=美元梅勒;美元这- >模板=美元模板;}/ /……}
配置服务容器很容易:
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / services.yml服务:app.欧宝app在哪里找newsletter_manager:类:AppBundle 欧宝app在哪里找\通讯\ NewsletterManager参数:[' @mailer ',“@templating”]
1 2 3 4 5 6 7 8 9 10 11 12
< !——app / config /服务。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><服务id=“app.欧宝app在哪里找newsletter_manager”类=“AppBundle 欧宝app在哪里找\通讯\ NewsletterManager”><论点类型=“服务”id=“梅勒”/ ><论点类型=“服务”id=“模板”/ >< /服务>< /容器>
1 2 3 4 5 6 7 8
/ / app / config / services.php使用AppBundle\欧宝app在哪里找通讯\欧宝app在哪里找NewsletterManager;美元容器- >注册(“app.欧宝app在哪里找newsletter_manager”,N欧宝app在哪里找ewsletterManager::类)- >setArguments (数组(新引用(“梅勒”),新引用(“模板”)));
的app.欧宝app在哪里找newsletter_manager
现在已经进入核心服务梅勒
和模板
服务。这是一个常见的方式创建特定于应用程序的服务,利用不同的服务框架内的力量。
提示
确保swiftmailer
条目出现在您的应用程序配置。就像提到的如何导入配置文件/资源,swiftmailer
主要从SwiftmailerBundle调用服务的扩展,它注册梅勒
服务。