免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1425 | 回复: 0
打印 上一主题 下一主题

Start to work [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-17 14:54 |只看该作者 |倒序浏览
背景:
    框架会让一个不懂他的技术员变成"民工",却也让一些苦于敲重复代码到想砸键盘的的中级工程师有种"相见恨晚"的感觉.Phper更是如此.

正文:

1. 框架
    一个语言用得久了,有好多东西是重复做来做去,有些功能,模式已经被固定下来,就集结一些好的解决方案实现之,并要求程序员必须遵守的一套机制.如果你理解它,那么,它会带给你很大的效率;但如果你不理解它,那么,好多东西毫无道理,至少是从代码上看不出各部分间的关系.

2. Zend
   Php的官方框架.

3. 安装配置
3.1 下载
Zend Released
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
//该文件的作用是将任何访问都重定向到index.php入口
//windows下不能直接创建.开头的文件,可以先建立一个任意文件,然后另存成.htaccess

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
http://domain/controller/action
如:
http://localhost/zf-tutorial/demo_myself/index/showName
//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";
        }
    }
?>

好了,你可以以类似下面的地址来访问你的最简单的代码了:
http://localhost/zf-tutorial/demo_myself/index/index
http://localhost/zf-tutorial/demo_myself/index/
http://localhost/zf-tutorial/demo_myself/
http://localhost/zf-tutorial/demo_myself/index/add
http://localhost/zf-tutorial/demo_myself/index/edit
http://localhost/zf-tutorial/demo_myself/index/delete
总结: 如果顺利的话你应该可以看到一些输出了,恭喜你已经进入了Zend的大门,当然还有好多东西没有涉及,但毕竟,它可以run了.也正如我所说的,内部的机制决定了他独特的代码和url风格,如果你不理解,那么先不要向前,再多看看.不然,以后就只知道把砖头扔这,而不知道是为什么了.好了,待续.

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48467/showart_1866168.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP