私は、あらゆる Web アプリケーション プロジェクトに Silex (および Composer) を使用しています。
4 つのエンティティとフォームを自動ロードしたい:
- FSB\MyProject\Entity\Booking --> /src/FSB/MyProject/Entity/Booking.php
- FSB\MyProject\Form\BookingType --> /src/FSB/MyProject/Form/BookingType.php
- FSB\MyProject\Entity\Contact --> /src/FSB/MyProject/Entity/Contact.php
- FSB\MyProject\Form\ContactType --> /src/FSB/MyProject/Form/ContactType.php
composer.json は psr-0 配列で定義されています。
{
"require": {
"silex/silex": "~1.0",
[...]
},
"autoload": {
"psr-0": {
"FSB": "src/"
}
}
}
次に、index.php ファイルで次のように呼び出します。
use FSB\MyProject\Entity\Contact;
use FSB\MyProject\Form\ContactType;
use FSB\MyProject\Entity\Booking;
use FSB\MyProject\Form\BookingType;
$contact = new Contact();
私の開発環境、MAMP、php 5.4ではすべて正常に動作します
しかし、PHP 5.4を搭載したUbuntuの本番サーバーであるApache2でも壊れます
「PHP 致命的なエラー: クラス 'FSB\MyProject\Entity\Contact' が /[...]/index.php に見つかりません」
次のようなエンティティをロードする多くの方法を試しました。
{
"require": {
"silex/silex": "~1.0",
[...]
},
"autoload": {
"psr-0": {
"FSB/Palmeraie": "src/",
}
}
}
あるいは:
{
"require": {
"silex/silex": "~1.0",
[...]
},
"autoload": {
"psr-0": {
"FSB\\Palmeraie\\Entity": "src/",
"FSB\\Palmeraie\\Form": "src/"
}
}
}
--> 私の開発環境ではいくつかの方法が機能しています。私の本番環境にはありません...
私は何か見落としてますか ?