作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个使用 CakePHP 1.3 和 2.3 的环境,两者都使用相同的模型类。
我的可重用模型路径是:/var/www/libs/cakephp/models/*
在我的 config/bootstrap.php 文件中我设置了:
App::build(array(
'Model' => array('/var/www/libs/cakephp/models/'),
));
在生产环境中,一切正常,但在测试环境中,“models/*”文件夹中的类未加载。
两台服务器都是 LAMP。
经过大量的试验和错误后,我发现如果我在 testing 环境文件夹中将 models/中的文件从 myclassname.php 重命名为 Myclassname.php 一切正常!
所以问题出在名称文件中的大小写。
我知道 CakePHP 2.3 的约定,模型类应该是 CamelCase,但旧的 CakePHP 1.3 应用程序需要这些类。这里的问题是关于使用相同版本的框架、PHP 和 linux 时配置之间的差异。
我的问题可能是什么原因造成的?
在开发环境 (Windows) 中也一切正常。
最佳答案
按照 AD7six 的建议,我创建了指向我的模型的符号链接(symbolic link),允许 CakePHP 1.3 和 2.3 独立于大小写请求类文件。
cd /var/www/libs/cakephp/models/; ln -s myclassname.php MyClassname.php
关于php - CakePHP 2.3 在生产环境中加载模型类,但在测试环境中不加载 "case sensitive cause",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567621/
我是一名优秀的程序员,十分优秀!