背景:
框架会让一个不懂他的技术员变成"民工",却也让一些苦于敲重复代码到想砸键盘的的中级工程师有种"相见恨晚"的感觉.Phper更是如此.
正文:
1. 框架
一个语言用得久了,有好多东西是重复做来做去,有些功能,模式已经被固定下来,就集结一些好的解决方案实现之,并要求程序员必须遵守的一套机制.如果你理解它,那么,它会带给你很大的效率;但如果你不理解它,那么,好多东西毫无道理,至少是从代码上看不出各部分间的关系.
2. Zend
Php的官方框架.
3. 安装配置
3.1 下载
3.2 安装
解压
拷贝library目录到web服务器可以访问到的目录(我的例子是:~/www/zf-tutorial/下)
3.3 配置
3.3.1 apache
放开
LoadModule rewrite_module modules/mod_rewrite.so
3.3.2 php
php.ini中设置include_path
如:
include_path = ".;${path}\php\includes;C:\Program Files\EasyPHP 3.0\www\zf-tutorial\library"
3.3.3 .htaccess 文件
在你的网站根目录下创建文件.htaccess,内容如下:
EOF
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
EOF
//特别注意:Apache配置文件中DocumentRoot目录的AllowOverride None要改成AllowOverride All才能使.htaccess起作用.好多文档没有提及些处,致使配置不成功.
//该文件的作用是将任何访问都重定向到index.php入口
//windows下不能直接创建.开头的文件,可以先建立一个任意文件,然后用记事本另存为选所有文件,改名为.htaccess
3.3.4 其他.htaccess文件
EOF
deny from all
EOF
//使目录更安全
4. Make it work
4.1 必须的第一个文件index.php
在你的网站根目录如:~\www\zf-tutorial\demo_myself下创建index.php文件,这是所有访问的必经之路,也是由于.htaccess文件的转向达到的结果.
内容可能如下:
EOF
<?php error_reporting(E_ALL|E_STRICT); //设定时区 date_default_timezone_set('Asia/Shanghai'); //指明引用文件的路径 set_include_path('.' . PATH_SEPARATOR . '../library/'. PATH_SEPARATOR . '../application/models/'. PATH_SEPARATOR . get_include_path());
//库文件入口 include "Zend/Loader.php";
//使用类时自动加载 Zend_Loader::registerAutoload();
//使用Zend_Controller_Front类 $fc = Zend_Controller_Front::getInstance();
//设置Controller的目录 $fc->setControllerDirectory(array( "default"=>'../application/controllers', )); $fc->throwExceptions(true); $fc->setParam('noViewRenderer', true); $fc->setParam('noErrorHandler', false); //开始运行程序 $fc->dispatch(); ?>
|
EOF
4.2 目录结构
Zend不要求统一的目录结构,从代码中要以看到可以自定义各元素的目录,但有一个习惯的目录结构,可以使项目更加的分工明确,代码组织清晰.
/application下是我们主要的代码存放处.
4.3 一些概念
Controller:一个类,包含许多Action,可以说是一个函数的路由.
Action:函数,Controller类中的函数,做实际的操作.
Model:一个类,是数据的抽象,比如一个数据库表.
View:*.phtml文件,数据来自于Controller的view对象.
MVC模式:Controller, Model, View的分离设计.Zend 处处体现之.
4.4 Zend 的url
如:
//localhost/zf-tutorial/demo_myself/ 域部分
//index controller部分
//showName action部分
//不区分大小写
5. index Controller
index Controller是一个必须完成的一个Controller
5.1 规则
在index.php中的设置的Controller的目录中创建文件,命名规则:{Controller name}Controller.php,首字母大写其余小写,以Controller.php结尾,如:IndexController.php,里面实现一个必须名句为:{Controller name}Controller的类.类中是public function {actionname}Action()形式的函数,actionname必须以小写字母开头,其他字母小写.
5.2 实例
<?php class IndexController extends Zend_Controller_Action { function indexAction() { echo "Hello PHPChina1.com!"; }
function noRouteAction() { echo "Sorry, this page cannot be access."; } function addAction(){ echo "Add"; } public function editAction(){ echo "Edit"; } public function deleteAction(){ echo "Delete"; } } ?>
|
好了,你可以以类似下面的地址来访问你的最简单的代码了:
总结: 如果顺利的话你应该可以看到一些输出了,恭喜你已经进入了Zend的大门,当然还有好多东西没有涉及,但毕竟,它可以run了.也正如我所说的,内部的机制决定了他独特的代码和url风格,如果你不理解,那么先不要向前,再多看看.不然,以后就只知道把砖头扔这,而不知道是为什么了.好了,待续.
阅读(583) | 评论(0) | 转发(0) |