0

Pimcore CMSのフロントエンドでオブジェクトを一覧表示しようとすると、この問題が発生します。クラスディレクトリはinclude_pathにあります。クラスphpスクリプトはwebsite/var/classesにあります。しかし、Zendは私に例外を投げます:

警告:include_once(Object / hotelAds / List.php):ストリームを開くことができませんでした:145行目の/var/www/html/pimcore/lib/Zend/Loader.phpにそのようなファイルまたはディレクトリはありません

これが発生する理由を教えてください。ありがとう。

4

2 に答える 2

1

OOPを読み、命名規則に従ってください。クラス名は常に大文字で始める必要があります。そのため、oopphpフレームワークは最初の文字を大文字にするucfirst関数を使用します。Zendは非常に厳密なタイプのフレームワークであるため、優れたプログラミング手法を学ぶことができます。

于 2012-10-04T22:08:35.123 に答える
0

いつものように、私の質問は複雑すぎます。だから自分で答えさせてください。

Pimcore には、混乱を防ぐために修正する必要がある欠陥があります。クラスに hotelAds などの名前を付けると、私が行ったように作成されます。ただし、そのクラスのディレクトリは、HotelAds (/website/var/classes/Object/HotelAds/) (常に大文字から始まる) という名前になります。そのため、名前を付けたようなクラスを含めようとすると、バックエンド (!!) に表​​示されるように、これは完全に間違っており、ファイルが見つかりません。

「new Object_HotelAds_List()」(大文字の H に注意) で問題を修正したところ、ファイルが含まれていましたが、これでは状況は修正されないと思います。バックエンドと同様に、クラスの名前は「hotelAds」であるため、クラスの php ファイルを開くと、そこにも「hotelAds」があります。したがって、これは機能しません。

Pimcore は好きなようにファイルに名前を付けることができると思いますが、クラスのリクエストを解析するときに、バックエンドでクラス名を検索する必要があります。

とにかく、pimcore クラスを使用する場合、バックエンドで大文字から始まるクラスに名前を付ける必要があります。これが機能する唯一の方法です。そうしないと、何が問題なのかを見つけようとして 48 時間も無駄になります。Pimcore の開発者には、クラスに小文字の名前を付けるときに少なくとも警告をスローすることをお勧めします。

于 2012-08-13T05:56:52.970 に答える