Zend Studio教程:Zend Framework 2集成(2/3)——创建和配置新的ZF2模块(下)

Zend Studio是新一代的专业级智能PHP IDE,它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!本篇文章主要讲述Zend Studio中的Zend Framework 2集成教程的第二部分下半部分内容——使用ZF2服务定位器创建和注册新服务。

Zend Studio是新一代的专业级智能PHP IDE,它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!它包含了PHP开发所必须的部件,通过一整套的编辑、调试、分析、优化和数据库工具,Zend Studio加速开发周期,并简化复杂的应用方案。

Zend Studio免费版

Zend Studio中的Zend Framework 2集成教程,一共有四个步骤,小编将其分为三个部分,本篇文章主要讲述Zend Studio中的Zend Framework 2集成教程的第二部分下半部分内容——使用ZF2服务定位器创建和注册新服务。(查看上半部分内容点击这里

四、使用ZF2服务定位器创建和注册新服务

我们现在将使用Content Assist和ZF2 ServiceManager将控制器文件中的代码重构为新服务。

ref_icon_28x33.png要创建新服务:

1、在PHP资源管理器中,转到module | Downloads | src,然后右键单击“下载”文件夹。

2、选择New | Class。将显示“新建PHP类”对话框。

15new_php_class_thumb_200_350.png

3、将新类命名为“DownloadsService”,并在Namespace字段中输入“Downloads”。

4、单击完成。在您的编辑器中添加并打开新的PHP类。

5、输入以下代码:

<hpnamespace Downloads;class DownloadsService {function getFilesList() {return array("download1.zip", "download2.zip");}function getFilesPath() {return "http://...";}function getFilesSize(){return 50;}}gt;

6、保存文件。

7、打开模块的控制器文件(module | Downloads | src | Downloads | Controller | DownloadsController.php)。

8、向“indexAction”公共函数添加一个新变量:

  1. 开始输入“$ downloadService = $ this-> get”。

    Content Assist将显示获取选项

    16content_assist1_getservicelocator_thumb_400_250.png
  2. 选择getServiceLocator并继续输入:

$downloadService = $this->getServiceLocator()->get('downloadsService');

9、在下面的行中,键入“$ downloadService->”并按Ctrl + Space以显示Content Assist。Content Assist不显示downloadService类中定义的任何方法,这意味着Zend Studio无法确定Service Locator应返回的PHP对象。

10、要解决此问题,请使用项目属性将服务名称映射到PHP类:

  1. 在PHP Explorer中,右键单击项目,然后选择“属性”。

  2. 选择Zend Framework | “服务定位器”,在“服务定位器”对话框中,单击“添加”。

  3. 在“名称”列下,输入服务的名称——downloadService。

  4. 在“类型”列下,键入“下载”,然后按Ctrl + Space。

    Content Assist显示PHP类。

    17content_assist2_properties_dialog_thumb_300_300.png
  5. 选择DownloadsService类,然后单击“确定”。

11、返回控制器文件,在“$ downloadService->”后按Ctrl + Space以显示Content Assist。这次,Content Assist列出了相关的PHP对象。

18content_assist3_php_objects_thumb_400_300.png

12、现在我们可以通过用服务调用替换模拟数据来完成控制器的开发。使用Content Assist调用PHP方法:

getServiceLocator()->get('downloadsService'); return array("filesList"=> $downloadService->getFilesList(),"filePath" => $downloadService->getFilesPath(),"fileSize" => $downloadService->getFilesSize());}public function fooAction(){// This shows the :controller and :action parameters in default route// are working when you browse to /module-specific-root/downloads/fooreturn array();}}

13、保存文件。

14、在模块配置文件中注册服务:

  1. 打开Downloads模块的配置文件(module | Downloads | config |  module.config.php)。

  2. 在文件中的结束括号前添加一个新空白行,然后按Ctrl + Space显示Content Assist。

  3. 选择“service_manager”。

  4. 在“service_manager”数组中,添加一个“invokables”数组。

  5. 在第二个数组中,输入“downloadsService”=>“Downloads “。

    Content Assist显示DownloadsService服务。

19content_assist4_thumb_400_400.png

15、选择它,然后保存文件。

完成的代码应如下所示:

 array('invokables' => array('DownloadsControllerDownloads' => 'DownloadsControllerDownloadsController',),),'router' => array('routes' => array('module-name-here' => array('type'    => 'Literal','options' => array('route'    => '/download','defaults' => array('__NAMESPACE__' => 'DownloadsController','controller'    => 'Downloads','action'        => 'index',),),'may_terminate' => true,'child_routes' => array('default' => array('type'    => 'Segment','options' => array('route'    => '/[:controller[/:action]]','constraints' => array('controller' => '[a-zA-Z][a-zA-Z0-9_-]*','action'     => '[a-zA-Z][a-zA-Z0-9_-]*',),'defaults' => array(),),),),),),),'view_manager' => array('template_path_stack' => array('Downloads' => __DIR__ . '/../view',),),'service_manager' => array('invokables' => array('downloadsService'=>'DownloadsDownloadsService',),),);

16、刷新浏览器。请注意,“下载”模块现在显示DownloadService中定义的值。

20zf2_project_launched_with_changes3_thumb_600_450.png

相关文章:

Zend Studio使用教程:Zend Framework 2集成(1/3)——创建和部署新的ZF2项目

Zend Studio教程:Zend Framework 2集成(2/3)——创建和配置新的ZF2模块(上)


想要购买Zend Studio正版授权,或了解更多产品信息请点击“咨询在线客服”

扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯

1563778777.jpg

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月16日
下一篇 2019年7月16日

相关推荐

发表回复

登录后才能评论