Zend Studio是新一代的专业级智能PHP IDE,它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!本篇文章主要讲述Zend Studio中的Zend Framework 2集成教程的第二部分下半部分内容——使用ZF2服务定位器创建和注册新服务。
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”。
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”公共函数添加一个新变量:
-
开始输入“$ 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/fooreturn 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('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中定义的值。

相关文章:
Zend Studio使用教程:Zend Framework 2集成(1/3)——创建和部署新的ZF2项目
Zend Studio教程:Zend Framework 2集成(2/3)——创建和配置新的ZF2模块(上)
想要购买Zend Studio正版授权,或了解更多产品信息请点击“咨询在线客服”

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!