当前位置: 首页 > 知识库问答 >
问题:

作曲家-自动加载和PSR-0与PSR-4

邰胤
2023-03-14

我开始学习Composer,并正在开发一个系统,在该系统中,我将文件与核心应用程序文件分开,如下所示:

/root 
    |-- /src 
         |-- /App 
               |-- /DBConfig
               |-- /Controller
               |-- /Model
         |-- /Core 
               |-- /Helper
               |-- /Controller
               |-- /Model

所以,要在composer中设置此设置。json文件并访问所有类/App much/Core会这样吗?


    "autoload" : {
        "psr-X" : {
            "App\\" : "/src",
            "Core\\" : "/src"
        }
    }

还是有更正确的方法?

我也读过PSR-0和PSR-4的比较,我仍然有点怀疑应该使用哪一种。在我的情况下,我应该实现什么,PSR-0还是PSR-4?

共有1个答案

暴夕
2023-03-14

你不需要2个条目,主命名空间只需要一个,所以PSR-4需要这样的东西:

    "autoload" : {
        "psr-4" : {
            "MyApp\\" : "/src"            }
    }

只要src/中的所有内容都使用相同的名称空间,这就是您所需要的。让自动装弹机完成它的工作。

至于使用哪一种,我会选择PSR-4,因为在某个时候,PSR-0可能会被弃用,而且由于PSR-4是向后兼容的,减去了旧的遗留程序的一些缺点,所以除了您开始使用它的一些新功能之外,实际上没有什么区别

 类似资料:
  • 我有一位作曲家。json结构如下: 我有文件在应用程序/数据库/种子(这里的文件可以动态创建,所以解决方案与类地图:[应用程序/数据库/种子]不工作在这里bcs我必须始终转储-自动加载前播种: 用户表种子。php 数据库播种机。php 结构如下: 在php编写器之后。phar安装和php编写器。phar dump autoload我不能在应用程序中使用,例如在索引中。php 因为我收到错误:类Da

  • 我和许多其他人一样,似乎很难弄清楚何时以及如何使用自动加载。我想我理解作曲家和PSR-0/PSR-4的概念和这需要的目录结构。但是如果我用自己的MVC框架构建自己的项目 > 由于composer自带了自动加载器,它将加载我希望包含在项目中的所有依赖项,如果我不打算将我的网站变成分布式项目,我甚至需要自己的名称空间吗?为什么我不坚持使用include/requires? 最后,如果我采用名称空间,使

  • 如何自动加载助手函数(在任何类之外)?我可以在应该首先加载的某种引导文件?

  • 我正在使用一些phpunit测试类尝试composer autoload,但我似乎无法让它工作。当我从命令行运行phpunit时,我得到以下错误:“PHP致命错误:Class…notfound”。 我将提供所有的结构和文件信息。我可以,所以希望有人能发现我的错误。 结构(精简为相关文件): composer.json phpunit.xml 测试/功能/基本测试用例。php 测试/功能/主页测试。

  • 我很难理解这个简单的界面有什么问题。 当我收到下面的通知 弃用通知:./App/Interfaces/renderData.php中的类App\Interfaces\renderData不符合psr-4自动加载标准。它将不再在Composer v2.0中自动加载。 composer.json自动加载部分: 文件夹结构为: 我已经尝试将应用重命名为应用,然后转储自动加载,但问题仍然存在。

  • 我将用一个例子来问这个问题。假设我有一个这样的项目目录。 首先我想知道我是否把作曲家放在。项目目录中的json文件是否正确,以便在供应商目录中安装库?第二,假设我有以下几行,作曲家。json 那么作曲家将在哪里配置自动加载来查找关于项目根的类samplevendor\包\sampleclass?我问这个问题是在看了symfony2composer.locked文件中的以下几行之后: 更新:我在自动