Composer 自动加载问题

Composer Autoload Issue

我已将 Composer 添加到使用 PHP 自动加载功能的现有项目中。现在正在使用 composer autoload.php 我已经删除了我的旧自动加载功能并且我正在尝试通过 composer autoload 加载我现有的源目录但它没有获取我现有的任何源 类 .

composer 安装的所有东西都可以正常加载并且可以通过名称空间等访问,所以只是源目录中的现有源没有被拾取。有什么建议吗?

我在 Whosebug 上查看了作曲家的其他一些问题,但我读过的内容都没有解决我的问题。

文件结构:

 index.php
 root/
      sources/
      vendor/
      composer.json
 media/

作曲家自动加载:

 "autoload": {
    "psr-0": {
        "" : "sources/"
    }
 }

如果您的代码结构太复杂而无法转换为 PSR-* 结构,您可以同时使用旧的自动加载器和 composer 自动加载。

spl_autoload_register( function ( $class ) {
    $file = "sources/" . $class . ".class.php";
    if ( file_exists( $file ) ) {
        require $file;
        return;
    }
} );
require "vendor/autoload.php";

有两件事给我带来了问题,一是 class 文件名,二是作曲家命令需要 运行.

我的 class 文件名采用 {classname}.class.php 格式,而它们需要采用 PSR-0 期望的格式,即 Classname.php(首字母大写),依次class 文件中的 class 名称跟在文件名之后。

class Classname
{
    ...

第二个问题是我需要运行下面的命令。

composer dump-autoload

来自composer.org

If you need to update the autoloader because of new classes in a classmap package for example, you can use "dump-autoload" to do that without having to go through an install or update.