http://www.oophp.cn/article/view/id/368
很长时间都没有写过Zend Framewrok的教程了...有很多朋友都希望我可以写一个ZF1.8版本以上配置的教程.今天在家里没有什么事情.
就自己来写一下这方面的教程,我想有很多Zend Framework的初学者希望有这么一个较完整的教程....在此我也希望有更多的PHPer,可以
加入学习ZF框架的行列,以提高我们大家整体水平...好了,费话不多说...开始下面的教程:
1.参考我去年第一篇ZF初级教程的前二步,这是基本学习的开始.教程地址在此:http://www.oophp.cn/article/view/id/156
2.第三步:建立项目目录(下面这几步就和上面有比较大的区别:).
这里我也是以图片的方式来说明我这教程的项目目录.大部分是不会有更改的..大家可以参考下面这个图片说明来建立你自己的
项目目录,最好和我的一样.这样做的好处..就是先模仿别人,等自己理解了再自己创造.如果模仿成功,对自己学习的信心是一个极大的提高.因此,我劝告一些朋友,最好的学习方式就是先模仿,等自己有实力了,理解了再去超越!
3.第四步:和朋友们看到的教程一样,同样的模式就是:程序说明.
(1).首先:对application.ini配置文件做详细说明,因为这里是1.6版本与1.8版本的最大区别!注:#号为说明解释.
[production] #PHP错误是否显示,您所在时区,bootstrap引导文件配置(1为true,0为false) phpSettings.error_reporting = 8191 phpSettings.DATE.timezone = "Asia/Shanghai" phpSettings.display_startup_errors =1 phpSettings.display_errors = 1 bootstrap.path = APPLICATION_PATH "/Bootstrap.php" #后面会对这个引导文件做相应说明 bootstrap.class = "Bootstrap" #这个名称请对应到上面Bootstrap.php文件中的类 #项目载入的模块,插件,错误提示信息配置 resources.FrontController.moduleDirectory = APPLICATION_PATH "/modules" resources.FrontController.moduleControllerDirectoryName = "controllers" resources.FrontController.defaultModule = "default" resources.FrontController.plugins.common = "Custom_Controller_Plugin_Layout" resources.FrontController.noErrorHandler = 1 resources.FrontController.throwExceptions = 1 #resources.FrontController.noViewRenderer=false #网站页面标题,编码以及ViewHelper的设置(这些可有可无.我们可以在不同的模块中设置不同) resources.view.title = "Kylingood" resources.view.encoding = "UTF-8" resources.view.helperPathPrefix = "Custom_View_Helper_" resources.view.helperPath = "Custom/View/Helper/" #网站前台模块(不同模块对应不同layout,与不同的ViewHelper) resources.view.params.DEFAULT.basePath = APPLICATION_PATH "/modules/default/views/" resources.view.params.DEFAULT.helperPathPrefix = "Custom_View_Helper_Default_" resources.view.params.DEFAULT.helperPath = "Custom/View/Helper/Default/" resources.view.params.DEFAULT.layout = "default" resources.view.params.DEFAULT.layoutPath = APPLICATION_PATH "/modules/default/views/layouts" #用户后台模块(同上) resources.view.params.user.basePath = APPLICATION_PATH "/modules/user/views/" resources.view.params.user.helperPathPrefix = "Custom_View_Helper_User_" resources.view.params.user.helperPath = "Custom/View/Helper/User/" resources.view.params.user.layout = "default" resources.view.params.user.layoutPath = APPLICATION_PATH "/modules/user/views/layouts" #您数据库的配置参数 resources.db.adapter=PDO_MYSQL resources.db.params.host ="localhost" resources.db.params.username ="root" resources.db.params.password ="uniono" resources.db.params.dbname ="blog" resources.db.params.prefix ="oophp_" resources.db.isDefaultTableAdapter = TRUE resources.db.params.driver_options.1002 = "SET NAMES UTF8;" #网站多语言配置(前期学习可以不管,甚至于去掉) resources.translate.registry_key = "Zend_Translate" resources.translate.adapter = array resources.translate.options.scan = "directory" resources.translate.locale = "zh_CN" resources.translate.data.zh_CN = APPLICATION_PATH "/languages/zh_CN.php" resources.translate.data.en_US = APPLICATION_PATH "/languages/en_US.php" #网站生成的日志(前期学习可以不管,甚至于去掉) [logger] priority = 7 file = "log/debug.txt" ;EMERG=0;ALERT=1;CRIT=2;ERR=3;WARN=4;NOTICE=5;INFO=6;DEBUG=7; type = firebug ;stream,firebug #网站生成Cache配置(前期学习可以不管,甚至于去掉) [cache] type = file dir =APPLICATION_PATH"/cache/" pagedir =APPLICATION_PATH"/cache/page/" lifetime =7200 automatic_serialization = TRUE
(2)其次:对Bootstrap.php引导文件类做相应的说明.同时朋友们也可以参考PHPChina论坛 里框架讨论区一位kims写的 相应教程.地址为: kbs.kimbs.cn/blog/list/post/8/title/building-multi-modules-and-multi-templates
-application-using-Zend_Application
<?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { //读取application.ini配置文件,并对view进行初始化的设置 protected function _initView() { $options = $this->getOptions(); //print_r($options); $viewOptions = $options['resources']['view']; $view = new Zend_View($viewOptions); if (!empty($viewOptions['params'])) { foreach ($viewOptions['params'] as $key => $value) { $view->$key = $value; } } //print_r($viewOptions); $view->env = $this->getEnvironment(); $view->bootstrap = $this; $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); $viewRenderer->setView($view); //视图助手路径 $view->addHelperPath($viewOptions['helperPath'],$viewOptions['helperPathPrefix']); return $view; } //同理设置DB配置信息 protected function _initDB() { $options = $this->getOption('resources'); $options = $options['db']; $resources = $this->getPluginResource('db'); $db = $resources->getDbAdapter(); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('dbAdapter',$db); Zend_Registry::set('dbprefix',$options['params']['prefix']); } //同理设置cache(前期学习可以不用..可以去掉) protected function _initCache() { $config = new Zend_Config_Ini(APPLICATION_PATH."/configs/application.ini","cache"); $frontendOptions = array('lifetime' =>$config->lifetime, 'automatic_serialization' =>$config->automatic_serialization); $backendOptions = array('cache_dir'=>$config->dir); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); Zend_Registry::set('coreCache',$cache); } //同理设置多语言(前期学习可以不用..可以去掉) protected function _initTranslate() { $options = $this->getOption('resources'); $options = $options['translate']; if (!isset($options['data'])) { throw new Zend_Application_Resource_Exception('对不起,没有找到语言文件!'); } $adapter = isset($options['adapter']) ? $options['adapter'] : Zend_Translate::AN_ARRAY; $session = new Zend_Session_Namespace('locale'); if ($session->locale) { $locale = $session->locale; }else { $locale = isset($options['locale']) ? $options['locale'] : null; } $data = ''; if (isset($options['data'][$locale])) { $data = $options['data'][$locale]; } $translateOptions = isset($options['options']) ? $options['options'] : array(); Zend_Registry::set('Zend_Translate', $translate); return $translate; } }
(3)最后:就是关于index.php入口文件的说明了.有前面二步的操作与设定.index.php入口文件相对于ZF1.6版本来说. 是很简单的:
<?php @header('Content-type:text/html;charset=UTF-8'); session_cache_limiter('private, must-revalidate'); // 定义项目根目录 defined('PROJECT_ROOT')|| define('PROJECT_ROOT',realpath(dirname(__FILE__))); // 定义网站访问路径.例如define('WEB_ROOT', 'http://127.0.0.1/oophp/'); define('WEB_ROOT', 'http://'.$_SERVER['HTTP_HOST'].'/'); define('TABLE_PRE','oophp_');//数据表前缀,<--如果有的话. // 设置网站文件目录 defined('APPLICATION_PATH')|| define('APPLICATION_PATH',PROJECT_ROOT . '/app'); // Define application environment defined('APPLICATION_ENV')|| define('APPLICATION_ENV',(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV'): 'production')); //网站目录包含的路径设置 set_include_path(implode(PATH_SEPARATOR, array( PROJECT_ROOT.'/library', PROJECT_ROOT.'/app/modules/', PROJECT_ROOT.'/app/models/', get_include_path(), ))); //载入Zend_Application文件类 require_once 'Zend/Loader/Autoloader.php'; require_once 'Zend/Application.php'; Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true); //创建我们的应用, $application = new Zend_Application( APPLICATION_ENV, PROJECT_ROOT.'/app/configs/application.ini'); //var_dump($application); try { $application->bootstrap()->run(); }catch (Exception $e) { //调试时,抛出错误提示 echo '出现错误了'; echo nl2br($e->__toString()); }
第五步,就是和原来教程一样.创建一个IndexController.php控制器,建立相应的View显示页.如果成功输出你想要的. 那么恭喜你,你已经配置成功.. 最后,整个文件的源码提供上来.因为我空间大小的关系.我没有上传包含ZF的源码...注意:在library里面, 没有Zend这个文件夹,请自己下载Zend Framework1.8以上,放在library文件夹下面... 到这里.一个简单的配置教程又要结束了.....希望对有帮助的朋友可以给点支持....请经常关注一下这个博客... 嘿嘿....当然要是有 朋友希望加入教程的编写中...我也很乐意.....最后,谢谢大家..... 源码和图片这二天整理出来...因为刚到北京工作...很多事要处理~~~ 源码下载地址:http://www.oophp.cn/data/download/zendframework1.9.rar
相关推荐
### Zend Framework 1.8 Web Application Development #### 知识点一:Zend Framework 1.8 概述 - **框架定义**:Zend Framework 1.8 是一个用于开发 PHP Web 应用程序的开源 MVC(Model-View-Controller)框架。...
在**Zend Framework 1.8** 版本中,一些关键更新包括: 1. **性能提升**:通过代码优化和调整,1.8版本的运行速度比之前的版本更快。 2. **改进的AJAX支持**:增强了对AJAX请求的处理,使开发者能够更轻松地创建...
**Zend Framework 1.8 API 深度解析** Zend Framework 1.8 API 是一套由doxygen工具自动生成的文档,它为开发者提供了一个深入理解Zend Framework 1.8核心组件及其工作原理的宝贵资源。这个API文档包含了类、接口、...
- **适用版本**:适用于ZF 1.8和1.9版本,在后续的1.x系列版本中可能也能正常工作,但在1.8之前的版本中不适用。 - **目标读者**:适合初学者使用,尤其是那些希望快速掌握如何使用Zend Framework进行开发的新手。 -...
zendframework1.9中文版用户手册 直接从网站上下载的离线版本 非常方便 这个是.chm的 还有.exe的版本,方便大家使用。
zendframework1.9中文版用户手册 直接从网站上下载的离线版本 非常方便 这个是.exe的 还有.chm的版本,方便大家使用。
•Zend Framework 1.8 •Zend Framework 1.7 •Zend Framework 1.6 •Zend Framework 1.5 •Zend Framework 1.0 •Zend Framework 0.9 •Zend Framework 0.8 •Zend Framework 0.6 •Zend Framework ...
《Zend Framework 1.8 Web Application Development》是2009年出版的一本专著,由Keith Pope撰写,主要面向PHP开发者,介绍了如何使用Zend Framework 1.8版本构建功能丰富的Web应用程序。这本书是基于Model-View-...
由于仅给出了 "ZendFramework-1.10.4-minimal" 这一个文件名,我们可以推测压缩包内可能包含的是 Zend Framework 1.10.4 版本的源代码、库文件、配置文件、文档等基本组成部分,但不包含任何额外的模块或示例应用。...
Zend framework 1.9 最新手册 2009-11-01更新
**Zend Framework 中英文手册** **一、Zend Framework 简介** Zend Framework 是一个开源的、基于组件的 PHP 框架,旨在提供高效的开发环境,以构建高质量的Web应用程序。它遵循MVC(Model-View-Controller)设计...
PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好...
Zend Framework 2 官方教程汉化版
### 关于 Zend Framework 11.11 版本的入门简单英语教程(数据库配置等) #### 概述 在互联网上寻找有关 Zend Framework 的学习资料时,往往会遇到一些问题:许多教程基于旧版本,对新手而言理解起来相对困难。这...
7. **社区支持**: Zend Framework 有一个活跃的开发者社区,提供各种教程、示例代码和问题解答,对于遇到的未汉化部分,可以借助社区资源来解决。 8. **升级与迁移**: 随着技术的发展,Zend Framework 后续发布了2....
Whether you are learning Zend framework from scratch or looking to sharpen up your skills from previous versions, Zend Framework 2 Application Development will help you to harness the power of Zend ...