今天看了下zend framework入门教程,一步步实践了下(环境:windows+apache+php+mysql),还是有些设置的地方需要注意:
1.PATH_SEPARATOR
php的常量, 在程序中使用set_include_path的时候应该注意, 在win下,当你要include多个路径的话,你要用“;”隔开,但在linux下就 使用":"隔开的。所以建议使用PATH_SEPARATOR PHP常量,以避免更换服务器操作系统引发问题。
附:
set_include_path的使用
发现无论是 zend framework 还是 pear ,第一步都是设置php的include_path参数,来增加程序include文件的起始目录,以简化程序中 include/require 的文件路径。
set_include_path() 函数可以在php程序中动态改变php的 include_path 参数,其参数是一个字符串,多个不同的目录可以串联在一起作为一个参数一起提交——不同的目录间使用目录分割符号分开,在类unix的系统中这个分隔符是“:”,在windows系统中这个分隔符是“;”,所以php提供一个常量 PATH_SEPARATOR 来表示当前系统中的这个分隔符。
include_path 的规则如下:
# 当只指定了一个目录为 include_path ,比如 set_include_path("class")。class 为php包含文件的默认起点,但是当clss目录下找不到所要求包含的文件,而在当前页面目录下正好存在这个名称的文件时,则转为包含当前目录下的该文件。
# 当指定了多个目录为 include_path ,而所要求包含的文件在这几个目录都有相同名称的文件存在时,php选择使用设定 include_path 时排位居前的目录下的文件。
2.在建立完zf-tutorial/application/controllers/IndexController.php运行
http://localhost/zf_tutorial/index/add(edit/delete)都出现找不到页面错误,必须类似
http://127.0.0.1/index.php/index/comment (edit/delete)才能访问
解决方法:
httpd.conf
<Directory "××××××××">
...
Options FollowSymLinks Indexes MultiViews
改成-----》
<Directory "××××××××">
Options FollowSymLinks MultiViews
把index索引页隐藏起来.
3.在httpd.conf中修改
#LoadModule rewrite_module modules/mod_rewrite.so
把开头的#去掉 apache必须加载了 这个模块才能实现所谓clean url 干净整洁的url
注:mod_rewrite.so是在apache中的modules文件夹下的.
httpd.conf 中的AllowOverride 必须设置为All
4.config.ini这个文件中的
db.adapter = PDO_MYSQL必须开启pdo_mysql功能。
也可以如下设置:db.adapter = MYSQLI,同样要开启mysqlli功能。
在php.ini文件的extension找寻
extension=php_pdo.dll;
extension=php_pdo_mysql.dll
去除#注释,这样才能开启pdo_mysql功能
5.最后显示数据的时候asArray()出错原因:
0.9.1 到 1.0 RC3 6个版本的 Zend_Config源代码中
0.9.1里面只有asArray()
0.9.2
0.9.3
1.0.0 RC1
3个版本,将asArray()代码块移到toArray()里面,保留了asArray()作为toArray()的别名。(也就是2个一样功能的函数共存)
1.0.0 RC2废除了asArray(),只保留了toArray()
1.0.0 RC3 同 1.0.0 RC2
注意自己下的zf的版本
6.如果要使一个controllers中有多个个控制类文件(如:FooControler.php和BarController.php)记得两个类的命名方式与IndexController.php相同,并且在views/scripts/文件夹名/文件名.phtml(如:views/scripts/foo/index.phtml和views/scripts/bar/index.phtml)
注:访问的时候地址应该是:
http://localhost/index.php/foo或http://localhost/index.php/bar
测试的文件样例如下(library/zend/zend中的lib包自己加入即可,我用的是zf-1.0.3版本):zf-test.rar
网络上的中文ZF手册地址:http://framework.zend.com/manual/zh/
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240813180353098-2140851696.jpg)