【问题标题】:Generating optimized autoloader automatically自动生成优化的自动装载机
【发布时间】:2019-06-01 00:04:03
【问题描述】:

我正在使用 PHP 开发一个简单的项目,并且正在使用 PSR-4 自动加载。我只是想知道有没有办法在composer install 上运行composer dump-autoload -o,这样新用户就不需要输入composer dump-autoload -o 来避免自动加载错误

{
    "name": "project/vendor",
    "license": "MIT",
    "authors": [
        {
            "name": "my name",
            "email": "myemail@gmail.com"
        }
    ],
    "require": {
        "phpunit/phpunit": "^7.5"
    },
    "autoload": {
          "psr-4": {
              "src\\": "src/"
           }
     },
     "scripts": {
        "run-test": ["./vendor/bin/phpunit tests/calculatorTests.php"]
    }
}

【问题讨论】:

  • dump-autoload -o 仅用于创建优化的自动加载映射以用于生产。对于开发,您不需要它,只需安装 composer 就足够了。
  • 实际上在另一台机器上测试代码后,我执行了composer install,但是我得到一个错误是找不到类,执行composer dump-autoload后它工作得很好
  • 这不应该发生。您能否更新您的帖子以包含完整的 composer.json?
  • 好的,我更新了帖子,这里是截图的链接:i.stack.imgur.com/2oMT7.png
  • @anothermh 我做了谢谢

标签: php composer-php autoload psr-4


【解决方案1】:

您可以在composer.json config 中使用optimize-autoloader 选项:

"config": {
    "optimize-autoloader": true
},

但是这在开发阶段可能会很烦人(生成优化的自动加载器只是浪费时间和问题的根源),所以我宁愿为此创建一些快捷脚本并鼓励用户使用它而不是直接使用composer dump-autoload或composer install。见this answer as an example。然后你就可以使用

composer install --no-dev -o 

在你的脚本中。

【讨论】:

  • 谢谢,这就是我要找的东西
猜你喜欢
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 2018-06-15
相关资源
最近更新 更多