CakePHP 2.3在生产环境中加载模型类,但不在测试环境中加载“区分大小写原因”

CakePHP 2.3在生产环境中加载模型类,但不在测试环境中加载“区分大小写原因”,php,linux,apache,cakephp,case-sensitive,Php,Linux,Apache,Cakephp,Case Sensitive,我有一个使用CakePHP1.3和2.3的环境,它们都使用相同的模型类 我的可重用模型路径是:/var/www/libs/cakephp/models/* 在我的config/bootstrap.php文件中,我设置了: App::build(array( 'Model' => array('/var/www/libs/cakephp/models/'), )); 在生产环境中,一切都很好,但在测试环境中,“models/*”文件夹中的类没有加载 两台服务器都是LAMP 经过多次

我有一个使用CakePHP1.3和2.3的环境,它们都使用相同的模型类

我的可重用模型路径是:/var/www/libs/cakephp/models/*

在我的config/bootstrap.php文件中,我设置了:

App::build(array(
    'Model' => array('/var/www/libs/cakephp/models/'),
));
在生产环境中,一切都很好,但在测试环境中,“models/*”文件夹中的类没有加载

两台服务器都是LAMP

经过多次尝试和错误,我发现如果我将models/at testing environment文件夹中的文件从myclassname.php重命名为myclassname.php,一切都会正常工作

因此,问题在于名称文件中的大小写

我知道CakePHP2.3的约定,即模型类应该是CamelCase,但在旧的CakePHP1.3应用程序中需要这些类。这里的问题是关于使用相同版本的框架、PHP和linux时配置之间的差异

我的问题的原因是什么


在开发环境Windows中,一切都很好。

正如AD7six所建议的,我已经创建了指向我的模型的符号链接,允许CakePHP 1.3和2.3独立于case请求类文件

cd /var/www/libs/cakephp/models/; ln -s myclassname.php MyClassname.php

您可能会通过debugget\u included\u files;获得一些有用的信息;。显然,生产环境和测试环境的设置有一些不同之处——您可以通过以下方式避免问题:cd/var/www/libs/cakephp/models/;ln-s myclassname.php myclassname.php-也就是说,让每个模型在两种情况下都可用,在不同的主要版本之间共享这样的文件是个坏主意-对每个版本使用单独的共享模型签出/副本。