Php 作曲家自动加载问题

Php 作曲家自动加载问题,php,class,include,composer-php,autoload,Php,Class,Include,Composer Php,Autoload,我已将composer添加到使用PHP自动加载功能的现有项目中。现在正在使用composerautoload.php,我已经删除了旧的autoload函数,并试图通过composer autoload加载现有的源代码目录,但它没有拾取任何现有的源代码类 composer安装的所有内容都可以很好地加载,并且可以通过名称空间等进行访问。因此,只有源目录中的现有源没有被提取。有什么建议吗 我已经看了一些关于stackoverflow的其他作曲家问题,但我所读的都没有解决我的问题 文件结构: inde

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

composer安装的所有内容都可以很好地加载,并且可以通过名称空间等进行访问。因此,只有源目录中的现有源没有被提取。有什么建议吗

我已经看了一些关于stackoverflow的其他作曲家问题,但我所读的都没有解决我的问题

文件结构:

 index.php
 root/
      sources/
      vendor/
      composer.json
 media/
作曲家自动加载:

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

如果您的代码结构过于复杂,无法转换为PSR-*结构,则可以同时使用旧的autoloader和composer autoload

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

如果您的代码结构过于复杂,无法转换为PSR-*结构,则可以同时使用旧的autoloader和composer autoload

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

如果您的代码结构过于复杂,无法转换为PSR-*结构,则可以同时使用旧的autoloader和composer autoload

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

如果您的代码结构过于复杂,无法转换为PSR-*结构,则可以同时使用旧的autoloader和composer autoload

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

有两件事给我造成了问题,一件是类文件名,另一件是需要运行的composer命令

我的类文件名的格式是
{classname}.class.php
,而它们需要采用PSR-0所期望的格式,即
classname.php
(大写首字母),并且类文件中的类名紧跟在文件名之后

class Classname
{
    ...
第二个问题是我需要运行下面的命令

composer dump-autoload
发件人:


例如,如果由于类映射包中的新类而需要更新自动加载程序,则可以使用“dump autoload”来更新自动加载程序,而无需进行安装或更新。

有两件事会给我带来问题,一件是类文件名,另一件是需要运行的composer命令

我的类文件名的格式是
{classname}.class.php
,而它们需要采用PSR-0所期望的格式,即
classname.php
(大写首字母),并且类文件中的类名紧跟在文件名之后

class Classname
{
    ...
第二个问题是我需要运行下面的命令

composer dump-autoload
发件人:


例如,如果由于类映射包中的新类而需要更新自动加载程序,则可以使用“dump autoload”来更新自动加载程序,而无需进行安装或更新。

有两件事会给我带来问题,一件是类文件名,另一件是需要运行的composer命令

我的类文件名的格式是
{classname}.class.php
,而它们需要采用PSR-0所期望的格式,即
classname.php
(大写首字母),并且类文件中的类名紧跟在文件名之后

class Classname
{
    ...
第二个问题是我需要运行下面的命令

composer dump-autoload
发件人:


例如,如果由于类映射包中的新类而需要更新自动加载程序,则可以使用“dump autoload”来更新自动加载程序,而无需进行安装或更新。

有两件事会给我带来问题,一件是类文件名,另一件是需要运行的composer命令

我的类文件名的格式是
{classname}.class.php
,而它们需要采用PSR-0所期望的格式,即
classname.php
(大写首字母),并且类文件中的类名紧跟在文件名之后

class Classname
{
    ...
第二个问题是我需要运行下面的命令

composer dump-autoload
发件人:



例如,如果由于classmap包中的新类而需要更新autoloader,则可以使用“dump autoload”进行更新,而无需进行安装或更新。

类位于何处,它们的名称是什么?您是否遵循PSR-0的路径和文件名布局标准?所有源文件的格式都是“classname.class.php”,类名是类中使用的名称。这不是PSR-0,因此Composer无法自动加载它是正常的。请改用“classmap”,并告知您每次添加新类时都必须运行
composer dump autoload
。或者重命名文件以类似PSR-0方案(推荐)。@Sven,我已经更新了类,使其具有类似“Classname.php”的文件名,但仍然没有加载这些类。我需要一个示例,您的一个类名及其文件的完整路径来比较它们。您的类位于何处,它们的名称是什么?您是否遵循PSR-0的路径和文件名布局标准?所有源文件的格式都是“classname.class.php”,类名是类中使用的名称。这不是PSR-0,因此Composer无法自动加载它是正常的。请改用“classmap”,并告知您每次添加新类时都必须运行
composer dump autoload
。或者重命名文件以类似PSR-0方案(推荐)。@Sven,我已经更新了类,使其具有类似“Classname.php”的文件名,但仍然没有加载这些类。我需要一个示例,您的一个类名及其文件的完整路径来比较它们。您的类位于何处,它们的名称是什么?您是否遵循PSR-0的路径和文件名布局标准?所有源文件的格式都是“classname.class.php”,类名是类中使用的名称。这不是PSR-0,因此Composer无法自动加载它是正常的。请改用“classmap”,并告知您每次添加新类时都必须运行
composer dump autoload
。或者将文件重命名为类似于PSR-0方案(推荐)。@Sven,我已经更新了类,使其具有类似于“Classname.php”的文件名,但仍然没有加载这些类。我希望