当前位置: 首页 > 面试题库 >

如果类映射实际上更快,为什么在作曲家中使用PSR-0或PSR-4自动加载?

程举
2023-03-14
问题内容

我了解您可以使用PSR标准来定位文件,也可以告诉作曲家一个目录来扫描类。
文档建议使用PSR-4
标准。
作曲家还可以选择创建优化的自动加载器,该加载器基本上会生成完整的classmap。那么,如果最好的加载方式是通过类映射,为什么还要使用PSR-4?

保持目录结构对我来说很有意义,因为无论如何这都是组织的一种好方法。但是,似乎合理的选择是在开发机器上使用PSR-4加载,然后在生产环境中使用classmap。这样,您不必在每次创建新类时都重新构建类映射,但是生产环境会在部署过程中创建一个完整的类,而无需额外调用

./composer.phar dump-autoload -o

问题答案:

如果类映射实际上更快,为什么在作曲家中使用PSR-0或PSR-4自动加载?

因为它更实用。

在生产环境中,您可以使用classmap(带有composer dumpautoload -o),因为您不会添加任何新类,但是在开发环境中,具有PSR-0或PSR-4提供的灵活性很有趣(即,添加新类时无需执行任何操作) 。

更新: 您也可以使用composer install -o,它更简单。



 类似资料:
  • 我开始学习Composer,并正在开发一个系统,在该系统中,我将文件与核心应用程序文件分开,如下所示: 所以,要在composer中设置此设置。json文件并访问所有类/App much/Core会这样吗? 还是有更正确的方法? 我也读过PSR-0和PSR-4的比较,我仍然有点怀疑应该使用哪一种。在我的情况下,我应该实现什么,PSR-0还是PSR-4?

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

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

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

  • 我正在用Slim和Twig创建一个web应用程序。我使用的库工作得很好,我可以轻松地调用它们。然而,作曲家并没有找到我自己的类。json自动加载psr-4(psr-0也找不到它们) 这是我的文件系统: 这是我的: 然后: 最后是我的文件: 当我运行时,命令输出: 生成包含0类的自动加载文件 然后以状态代码0退出。应该能找到4个班吧? 运行应用程序显示错误: 致命错误:未捕获错误:类'类\应用程序'

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