Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423630
  • 博文数量: 117
  • 博客积分: 5235
  • 博客等级: 大校
  • 技术积分: 1775
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-12 15:51
文章分类

全部博文(117)

文章存档

2012年(9)

2011年(2)

2010年(21)

2009年(13)

2008年(72)

我的朋友

分类:

2009-03-17 14:54:18

背景:
    框架会让一个不懂他的技术员变成"民工",却也让一些苦于敲重复代码到想砸键盘的的中级工程师有种"相见恨晚"的感觉.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) |
0

上一篇:搞定c指针

下一篇:串口通信简例

给主人留下些什么吧!~~