【问题标题】:Composer autoloaded files debug [duplicate]作曲家自动加载文件调试[重复]
【发布时间】:2020-04-08 16:20:31
【问题描述】:

我正在尝试通过 composer 自动加载一个非基于类的文件

"autoload" : {
    "files": ["app/routes.php"]
},

但我无法在我的脚本中获取此文件的内容。我已经包含了vendor/autoload.php 并运行了dump-autoload

我想要的是,如果有一种方法可以让我们在浏览器或终端中查看 composer 正在自动加载的文件列表,以便我可以确定自动加载工作正常并且还有其他问题我的代码。

谢谢

更新:文件层次结构

Index.php

/**
 * Including the Composer's autoloader
 */
require_once 'vendor/autoload.php';

/**
 * Bootstrap our application
 */
require_once 'app/init.php';

初始化.php

<?php var_dump($route); ?>

routes.php

<?php
$route = 'abc';
?>

所以我的问题是我想访问我的 init.php 文件中的 $route 变量。

【问题讨论】:

  • 我认为如果您的旧问题有一些作为 cmets 的反应并且总而言之更好地描述了这种情况,那么您不应该提出新问题。
  • @Sven 对此我深表歉意。在我发布这个新问题时,没有任何答案可以满足这就是为什么我用新格式提出这个问题

标签: php composer-php


【解决方案1】:

我查看了autoload_real.php,发现这些文件不包含在全局范围内。

public static function getLoader()
{
    [...]

    $includeFiles = require __DIR__ . '/autoload_files.php';
    foreach ($includeFiles as $file) {
        require $file;
    }

    [...]
}

variable scope。只需在您的 routes.php 文件中添加 echo "test"; 以确认它已正确包含。然后你可能想用类似的东西改变routes.php

function getRoutes()
{
    return "abc";
}

Init.php

<?php var_dump(getRoutes()); ?>

【讨论】:

    【解决方案2】:

    你是否包含了 Composer 生成的 autoload.php 文件?

    require_once 'path/to/autoload.php';
    

    另外,请注意,文件将在每个请求

    时加载

    【讨论】:

    • 你在说 abotu vendor/autoload.php 吗?由作曲家提供?
    • 是的,包含该文件
    • 请看我已经更新了我的问题,以便我更清楚代码流程和问题
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2016-08-13
    • 2013-12-09
    • 2015-12-24
    • 2017-02-26
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多