2

我在任何 Web 应用程序项目中都使用 Silex(以及 Composer)。

我想自动加载 4 个实体和表单:

  1. FSB\MyProject\Entity\Booking --> /src/FSB/MyProject/Entity/Booking.php
  2. FSB\MyProject\Form\BookingType --> /src/FSB/MyProject/Form/BookingType.php
  3. FSB\MyProject\Entity\Contact --> /src/FSB/MyProject/Entity/Contact.php
  4. 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 中一切正常

但它在我的生产服务器上也中断了,Ubuntu 上的 Apache2 和 PHP 5.4

“PHP 致命错误:在 /[...]/index.php 中找不到类 'FSB\MyProject\Entity\Contact'”

我尝试了很多方法来加载我的实体,例如:

{
    "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/"
        }
    }
}

--> 在我的开发环境中有几种方法;我的生产环境中没有...

我错过了什么 ?

4

2 回答 2

4

检查您的文件/目录名称的大小写是否正确,OS X 上的文件名不区分大小写,与 Linux/Unix 文件系统上的文件名相反。

于 2013-08-02T15:24:44.270 回答
1

执行“作曲家更新”,它会再次工作。

于 2014-01-22T11:22:15.357 回答