zend framework 入门学习 联系客服

发布时间 : 星期五 文章zend framework 入门学习更新完毕开始阅读8195c09151e79b89680226ee

为了建立我们的应用程序,我们将开始github 上可用ZendSkeletonApplication。用浏览器转到https://github.com/zendframework/ZendSkeletonApplication

然后,单击\按钮。将下载

zendframework-ZendSkeletonApplication-zfrelease-2.0.0beta5-2-gc2c7315.zip文件。 把这个文件解压到更目录,你把所有的虚拟主机,并所得的目录重新命名 ZF2教程。

把这个文件解压到更目录中并重新命名,再把你的vhosts文件添加刚才解压的项目。 4.1虚拟主机

现在,您需要创建一个Apache虚拟主机的应用程序,编辑hosts文件,用http://myobject.localhost,从你的myobject/public/index.php索引。

确保,NameVirtualHost定义,并设置为“*80”或类似的,然后沿着这些定义了一个虚拟主机 例如:

ServerName myobject.localhost

DocumentRoot E:\\wamp\\www\\myobject\\public SetEnv APPLICATION_ENV \ DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all

请确保您更新您的/ etc / hosts或C:\\ WINDOWS\\ SYSTEM32 \\drivers\\etc\\ hosts文件,使myobject.localhost被映射到127.0.0.1。该网站可以被访问使用http://myobject.localhost。接着重新启动您的Web服务器就可以了。

您现在有一个工作的程序框架,我们可以开始细节的添加我们的应用程序。

6.1设置Album模块

创建一个目录,叫做Album.。模块具有以下子目录下:

正如你所看到的相册模块有不同类型的文件,我们将有独立的目录。在PHP类的Album命名空间内的文件,其中包含namespace src/Album目录中,这样我们就可以有多个我们的

模块的命名空间,我们需要它。

为了Zend Framework 2 的ModuleManager加载和配置模块。模块目录的根(module/Album)Module.php,并期望找到一个类在Album\\Module内。也就是说,一个给定模块中的类的命名空间模块的名称,是该模块的目录名。

创建Module.php相簿中的模块:创建一个名为Module.php下zf2-tutorial/module/Album:

namespace Album; class Module {

public function getAutoloaderConfig() { Return

array(’Zend\\Loader\\ClassMapAutoloader’

=>

array(__DIR__ . ’/autoload_classmap.php’,),’Zend\\Loader\\StandardAutoloader’ =>array(’namespaces’ => array(__NAMESPACE__ => __DIR__ . ’/src/’ . __NAMESPACE__, ),),); }

public function getConfig() {

return include __DIR__ . ’/config/module.config.php’; } }

getAutoloaderConfig()和getconfig的()将自动为我们ModuleManager调用。

6.1.1自动加载文件

我们的getAutoloaderConfig()方法返回一个数组,它是ZF2的AutoloaderFactory兼容。我们配置它。我们添加一个类映射文件ClassmapAutoloader(标准的自动加载),还添加这个模块的命名空间到StandardAutoloader。标准的自动加载需要一个命名空间和路径,在哪里可以找到文件该命名空间。这是PSR-0标准,因此类直接映射到文件每PSR-0的规则。

我们并不需要通过classmap加载文件,所以我们提供了一个空数组的classmap自动加载。创建一个文件名为autoload_classmap.php下zf2-tutorial/module/Album:

return array();

这是一个空数组,为ablun命名空间中的类自动加载时,它就会返回到StandardAutoloader。 6.2配置

经注册的自动加载,让我们快速浏览一下了getconfig()方法在Album\\Module。这 法只加载在config/ module.config.php中的文件。

创建一个文件称为module.config.php下zf2-tutorial/module/Album/config:

return array(

’controllers’ => array(

’invokables’ => array(

’Album\\Controller\\Album’ => Album\\Controller\\AlbumController’, ),

),

’view_manager’ => array(

’template_path_stack’ => array(

’album’ => __DIR__ . ’/../view’, ), ), );

在ServiceManager是被传递到相关组件的配置信息。我们需要两个初始部分:,controllers和view_manager。控制器部分提供了所有控制器列表。我们都需要一个控制器,AlbumController,我们将Album\\Controller\\Album作为参考。控制器键必须是唯一的,它与我们的模块名称,是所有模块前缀。

TemplatePathStack配置我们认为是view_manager部分。这将允许它来寻找我们的view/

directory中存储的ablum的视图脚本。

6.3通知应用程序对我们的新模块。

我们现在需要告诉ModuleManager,这个新的模块存在。这是在应用程序的配置提供的文件

config/application.config.php,它是由框架应用程序。更新这个文件,它的模块部分包含的album,

以及以后项目扩展的栏目。

7路由和控制器

我们将建立一个非常简单的库存系统,以显示我们的ablun。主页会列出我们收集 ,让我们可以添加,编辑和删除专辑。因此,需要以下页面:

Home Add new album Edit album 这将显示专辑列表,并提供编辑和删除的链接。此外,一个连接到启用 新专辑。 本页面提供了一个表单,添加一个新的专辑。 本页面提供了一个表单编辑的专辑。 这个页面将确认我们要删除的相册,然后将其删除。 Delete album 我们建立文件之前,重要的是如何在框架页面里组织。每一个动作被称为应用程序,作用单位是页面和行动分为模块内的控制器。

我们有四个页面,适用于专辑,我们将它们分组在一个单一的控制器AlbumController内 我们的相册模块的四个动作。四个行动将是:

通过使用在模块定义的路由module.config.php文件来映射一个URL到一个特定的操作。我们将增加我们的ablum行动的路由。这是更新的模块配置文件用新的代码高亮显示。

return array( );

'controllers' => array(

'invokables' => array( 'Album\\Controller\\Album' => 'Album\\Controller\\AlbumController',

), ),

//下面一节是新的,应该被添加到您的文件 'router' => array( ),

'routes' => array( 'album' => array( 'type' => 'segment', ),

'options' => array( ),

'route' => '/album[/:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ),

'defaults' => array( 'controller' => 'Album\\Controller\\Album', ),

'action' => 'index',

'view_manager' => array( 'template_path_stack' => array( ),

'album' => __DIR__ . '/../view'

),

我们现在已经准备好建立我们的控制器。在Zend Framework2,控制器是一个类通常被称为 控制器。注意{Controller name}必需以大写字母开始。 Controller.php这样的控制器内的目录模块。在本例中,module/Album/src/Album/Controller。每一个行动是一个公共的方法,在{动作名称}操作的控制器类,被命名为。在这种情况下{action name}应该从一个。

小写字母。

创建控制器类AlbumController.php的zf2-tutorials/module/Album/src/Album/Controller:

namespace Album\\Controller;

use Zend\\Mvc\\Controller\\AbstractActionController; use Zend\\View\\Model\\ViewModel;

class AlbumController extends AbstractActionController {

public function indexAction() { }

public function addAction() { }

public function editAction() { }

public function deleteAction() { } }