关于 import 和 文件名大小写问题

之前都是在Windows环境下测试的,没什么问题。

但是当我将应用上传至虚拟主机上(环境为 FreeBSD, PHP5.2.6, 安装了Zend Optimizer),这是 config/main.php 中 import 的

application.models.* 失效(应该 * 在此处存在问题),

之后我试了笨拙的办法, application.models.filename,这个写法在此处生效了,但是又遇到另外一个问题, 在models 目录下 所有文件的文件名首字母是大写的,但是当我访问某个页面会出现如下错误:

YiiBase::include(post.php) [<a href=‘yiibase.include’>yiibase.include</a>]: failed to open stream: No such file or directory

注意到 post.php 首字母是小写,我又将models 目录下文件的文件名改成首字母小写,此时又会出现 YiiBase::include(/usr/vhome/3/9/0/390499.cnc-us1-g4.chinadns.net/www/mzjy/protected/models/Post.php) [<a href=‘yiibase.include’>yiibase.include</a>]: failed to open stream: No such file or directory

不知道有没有谁遇到过这种情况,该怎么解决?

你的服务器可能禁止使用php include_path (application.models.*)实质上是把protected/models给加入到include_path里。

另外,import或include的名字是区分大小写的,尤其是在linux上。如果是import class的话,那么文件名必须和类名完全一样,包括大小写。

了解。

谢了,强哥。