Zend Studio教程:Zend Framework 2集成(2/3)——创建和配置新的ZF2模块(下)
Zend Studio是新一代的专业级智能PHP IDE,它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!它包含了PHP开发所必须的部件,通过一整套的编辑、调试、分析、优化和数据库工具,Zend Studio加速开发周期,并简化复杂的应用方案。
Zend Studio中的Zend Framework 2集成教程,一共有四个步骤,小编将其分为三个部分,本篇文章主要讲述Zend Studio中的Zend Framework 2集成教程的第二部分下半部分内容——使用ZF2服务定位器创建和注册新服务。(查看上半部分内容点击这里)
四、使用ZF2服务定位器创建和注册新服务
我们现在将使用Content Assist和ZF2 ServiceManager将控制器文件中的代码重构为新服务。
要创建新服务:
1、在PHP资源管理器中,转到module | Downloads | src,然后右键单击“下载”文件夹。
2、选择New | Class。将显示“新建PHP类”对话框。
3、将新类命名为“DownloadsService”,并在Namespace字段中输入“Downloads”。
4、单击完成。在您的编辑器中添加并打开新的PHP类。
5、输入以下代码:
<?php namespace Downloads; class DownloadsService { function getFilesList() { return array("download1.zip", "download2.zip"); } function getFilesPath() { return "//..."; } function getFilesSize(){ return 50; } } ?>
6、保存文件。
7、打开模块的控制器文件(module | Downloads | src | Downloads | Controller | DownloadsController.php)。
8、向“indexAction”公共函数添加一个新变量:
开始输入“$ downloadService = $ this-> get”。
Content Assist将显示获取选项
选择getServiceLocator并继续输入:
$downloadService = $this->getServiceLocator()->get('downloadsService');
9、在下面的行中,键入“$ downloadService->”并按Ctrl + Space以显示Content Assist。Content Assist不显示downloadService类中定义的任何方法,这意味着Zend Studio无法确定Service Locator应返回的PHP对象。
10、要解决此问题,请使用项目属性将服务名称映射到PHP类:
在PHP Explorer中,右键单击项目,然后选择“属性”。
选择Zend Framework | “服务定位器”,在“服务定位器”对话框中,单击“添加”。
在“名称”列下,输入服务的名称——downloadService。
在“类型”列下,键入“下载”,然后按Ctrl + Space。
Content Assist显示PHP类。
选择DownloadsService类,然后单击“确定”。
11、返回控制器文件,在“$ downloadService->”后按Ctrl + Space以显示Content Assist。这次,Content Assist列出了相关的PHP对象。
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/foo return array(); } }
13、保存文件。
14、在模块配置文件中注册服务:
打开Downloads模块的配置文件(module | Downloads | config | module.config.php)。
在文件中的结束括号前添加一个新空白行,然后按Ctrl + Space显示Content Assist。
选择“service_manager”。
在“service_manager”数组中,添加一个“invokables”数组。
在第二个数组中,输入“downloadsService”=>“Downloads \“。
Content Assist显示DownloadsService服务。
15、选择它,然后保存文件。
完成的代码应如下所示:
array( 'invokables' => array( 'Downloads\Controller\Downloads' => 'Downloads\Controller\DownloadsController', ), ), 'router' => array( 'routes' => array( 'module-name-here' => array( 'type' => 'Literal', 'options' => array( 'route' => '/download', 'defaults' => array( '__NAMESPACE__' => 'Downloads\Controller', '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'=>'Downloads\DownloadsService', ), ), );
16、刷新浏览器。请注意,“下载”模块现在显示DownloadService中定义的值。
彩票走势图相关的文章:
Zend Studio使用教程:Zend Framework 2集成(1/3)——创建和部署新的ZF2项目
Zend Studio教程:Zend Framework 2集成(2/3)——创建和配置新的ZF2模块(上)
想要购买Zend Studio正版授权,或了解更多产品信息请点击
扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯