1

Kohana3.3 で作成したプロジェクトを Windows から Ubuntu (ローカル サーバー) に移動したところ、動作しなくなりました。問題は大文字/小文字の問題だと思います(Table.__またはModel_には存在しないと言われています)。

大文字/小文字のファイル名とクラス名について説明が必要です。

私が見つけたのはSO question: Kohana 3.3 Not working from Subdirectoryです:

Kohana 3.3 は、PHP Framework Interop Group の PSR-0 標準の部分的なサポートを追加します。PHP フレームワークの開発者は、フレームワーク間のやり取りを簡素化するために、この標準に従うことをお勧めします。PSR-0 の要件の 1 つは、クラス名とファイル名が一致することです。

また、Kohana3.3 のコントローラー フォルダーは大文字の C で始まります (3.2 とは異なります)。また、Welcome.php ファイルは W で始まります (3.2 とは異なります)。

したがって、Kohana3.3 に関する私の簡単な質問は次のとおりです。

モデル フォルダは大文字で始める必要がありますか?

すべてのコントローラ ファイルは大文字で始める必要がありますか?

Model フォルダ内のすべてのモデル ファイルは大文字で始める必要がありますか?

ORM::factory('Capital') と書くべきで、ORM::factory('capital') と書くべきではありませんか?

ビューフォルダはどうですか:それはビューですか、それともビューですか?

Kohana の例をいくつか読んだことがありますが、私が見つけたものから、それが 3.3 用であるとは思えません。

また、私の質問: なぜ Windows で動作したのですか?

4

1 に答える 1

3

ドキュメントを読んだり、実験を行ったりして、何が機能し、何が機能しないかを確認するだけで、ほとんどのことを理解できます。

つまり、PSR-0 では、ファイル名はクラス名とまったく同じでなければなりません。したがって、という名前のクラスを呼び出す場合Penguins_CanNot_Fly、ファイル名は正確にPenguins/CanNot/Fly.php.

Linux では、ファイル名は大文字と小文字が区別されます。したがって、File.txtfile.txtは 2 つの異なるファイルです。ただし、Windows では、2 つのファイルは同じファイルと見なされます (これは、Windows では大文字と小文字が区別されないためです)。これは、正確なファイル パスを確認するようにオートローダーを変更しない限り、PSR-0 が Windows で正しく動作しないことを意味します。

ORM に関しては、はい、モデルは大文字と小文字を区別する必要があることに注意する必要があります。ORM::factory('Blog')異なるモデルをORM::factory('blog')ロードしますが、同じテーブルが使用されます。

于 2012-12-28T19:38:06.550 に答える