1

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 です。

多くの試行錯誤の後、models/ のテスト環境フォルダー内のファイルの名前をm yclassname.php からM yclassname.php に変更すると、すべて正常に動作することがわかりました。

したがって、問題は名前ファイルの Case にあります。

私は CakePHP 2.3 の規則を知っています。モデル クラスは CamelCase である必要がありますが、これらのクラスは古い CakePHP 1.3 アプリで必要です。ここでの質問は、同じバージョンのフレームワーク、PHP、および Linux を使用する場合の構成の違いについてです。

問題の原因は何ですか?

開発環境(Windows)でもすべて正常に動作します。

4

1 に答える 1

0

AD7six によって提案されたように、CakePHP 1.3 および 2.3 が大文字と小文字を区別せずにクラス ファイルを要求できるように、モデルへのシンボリック リンクを作成しました。

cd /var/www/libs/cakephp/models/; ln -s myclassname.php MyClassname.php
于 2013-10-29T16:49:32.460 に答える