【问题标题】:How to fix autoloader for global apps in composer如何在作曲家中修复全局应用程序的自动加载器
【发布时间】:2021-03-26 06:27:07
【问题描述】:

我正在尝试为我的 PHP Framework 项目从头开始创建模板 installer,这是我第一次与 composer global 合作,所以我完全迷失了。

main file 上,我尝试像这样包含自动加载器:

#!/usr/bin/env php
<?php
$dir = __DIR__;

if(is_file(__DIR__."/vendor/autoload.php")){
    require_once(__DIR__."/vendor/autoload.php"); // this is the line 6
} elseif (is_file(__DIR__."/../autoload.php")) {
    require_once(__DIR__."/../autoload.php");
    $dir = __DIR__."/../vendor/eru123/linker-installer";
} else {
    echo "Failed to load resources";
}

use Linker\Installer\Installer;

$installer = new Installer();

if(!$installer->init($dir,$argv ?? [],"v1.0"))
    Installer::echo("Linker installer failed to execute command! Try again!\n",33);

但是当我使用 composer global 安装它时,包含了“autoload.php”但是我不能使用我在 src 文件夹上创建的类,即使它在我的项目 composer.json 上自动加载 psr-4

C:\Users\pepe>linker -v
PHP Fatal error:  Uncaught Error: Class "Linker\Installer\Installer" not found in C:\Users\pepe\AppData\Roaming\Composer\vendor\eru123\linker-installer\linker:6
Stack trace:
#0 {main}
  thrown in C:\Users\pepe\AppData\Roaming\Composer\vendor\eru123\linker-installer\linker on line 6

Fatal error: Uncaught Error: Class "Linker\Installer\Installer" not found in C:\Users\pepe\AppData\Roaming\Composer\vendor\eru123\linker-installer\linker:6
Stack trace:
#0 {main}
  thrown in C:\Users\pepe\AppData\Roaming\Composer\vendor\eru123\linker-installer\linker on line 6

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    我解决了这个问题!我这样改,代码就可以工作了。

    #!/usr/bin/env php
    <?php
    $dir = __DIR__;
    
    require_once(__DIR__."/../../autoload.php"); 
    
    
    use Linker\Installer\Installer;
    
    $installer = new Installer();
    
    if(!$installer->init($dir,$argv ?? [],"v1.0"))
        Installer::echo("Linker installer failed to execute command! Try again!\n",33);
    

    但如果您有更好的解决方案或标准解决方案,请告诉我并发布您的答案。

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 2020-11-17
      • 2018-08-26
      • 2013-12-09
      • 2019-02-05
      • 2021-12-18
      • 1970-01-01
      • 2012-09-28
      相关资源
      最近更新 更多