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