gpt4 book ai didi

namespaces - 使用 Composer 将命名空间加载为 psr-0 库

转载 作者:行者123 更新时间:2023-12-04 16:50:57 25 4
gpt4 key购买 nike

我正在将 Silex(以及 Composer)用于任何 Web 应用程序项目。

我想自动加载 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 Fatal error: Class 'FSB\MyProject\Entity\Contact' not found in /[...]/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/"
}
}
}

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

我错过了什么吗?

最佳答案

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

关于namespaces - 使用 Composer 将命名空间加载为 psr-0 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18017738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com