自动加载的原理是Zend_Application实例了Zend_Loader_Autoloader使其调用了 spl_autoload_register(array(__CLASS__, 'autoload')); 这样如果找不到的类就会调用此对象的autoload方法进行处理. 一个名称空间可以有多个加载器,迭代找出符合的自定义加载器后,其余的就不会使用了,一般我们只会针对一个名称空间注册一个自定义加载器或者直接使用默认的加载器. 注册名称空间方式分为以下两种. 1.只注册了空间的前辍,没有指定任何加载器,注册方法为registerNamespace('空间名称'). 2.注册了空间前辍,并指定了加载器.注册方法为pushAutoloader(加载器,'空间名称')或unshiftAutoloader(加载器,'空间名称')两个方法的区别是push将加载器放到指定空间名称的加载器队列之后,unshift是之前.
Browsing the archives for the zend tag
首先在安装所有软件之前新系统ports,方法如上一贴
然后 再进行下面的工作
1)安装mysql
#cd /usr/ports/databases/mysql51-server
#make WITH_CHARSET=uft8(我选择了这个,情况自己定) WITH_XCHARSET=all install clean
#cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
#rehash
!!!—–WITH_CHARSET=utf8(我选择了这个,情况自己定,可以使用gbk)
# mysql_install_db –user=mysql ##初始化mysql
#/usr/local/bin/mysqld_safe & ##启动mysql
#/usr/local/bin/mysqladmin -u root password ‘newpass’ ##修改root密码,newpass是你需要改的密码
【翻译说明】这是Zend Framework的非常经典的入门教程,它的原作者Rob Allen是《Zend Framework In Action》一书的作者。在翻译这个版本之前,只知道Jason Qi 翻译的0.9版(实际内容是关于Zend Frame 0.6版本的)。因为自0.9版以来Zend Framework已经有了很大的变化,教程也有了比较大的改变。因此才决定重新翻译一次。翻译完成后才发现Jason Qi 翻译的最新版本已经是1.4.3了。但毕竟已经翻译完成,而且Jason翻译的还不是最新版本,因此还是决定将这个版本的翻译发布出来。因此,实际上这个翻译版本是根据英文版v1.5.2完全重新翻译的。
7.6.1. 概述
分发是取得请求对象,提取其中的模块名,控制器名,动作名以及可选参数,然后实例化控制器并调用其中的动作的整过过程。如果其中的模块、控制器或者动作没能找到,将使用它们的默认值。Zend_Controller_Dispatcher_Standard指定每个控制器和动作的默认值为 index,模块的默认值为default,允许开发人通过setDefaultController()、setDefaultAction()和setDefaultModule()改变默认值设定。
使用传统的模块目录结构:
传统的模块目录结构允许你把不同的MVC应用程序分离成为独立的单元,并和不同的前端控制器配合再使用。示例一下这样的目录结构:
此配置是在Window环境下,Apache2.0.54,PHP 版本为5.2.2
1.程序结构目录如下:
application/
controllers/
IndexController.php
models/
views/
scripts/
index/
index.phtml
helpers/
filters/
library/
public/
index.php
2.将下载的ZF中的library下的zend目录拷贝到程序的library中