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

翻译|使用教程|编辑:莫成敏|2019-08-19 14:38:18.510|阅读 27 次

概述: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、输入以下代码:

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

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/foo
		return 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(
			'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中定义的值。

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




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Zend Studio

Zend Studio是新一代的专业级智能PHP IDE(应用程序开发环境)。

Zend Server

运行和管理需要高可靠性和安全性的PHP应用程序

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat