Php Composer包:自动加载并扩展另一个包

Php Composer包:自动加载并扩展另一个包,php,dependencies,composer-php,Php,Dependencies,Composer Php,我刚刚用Composer创建了我的第一个PHP包,我遇到了一个问题 目前我正在处理一个包,他的主类从另一个包扩展了一个类,因此在我的composer.json中,我将扩展的包声明为一个需求: "require": { "php": ">=5.3.0", "ext-mbstring": "*", "author/BasePackage": "dev-master" }, 而且,如果我发布composer更新,我会在我的项目中得到一个很好的供应

我刚刚用Composer创建了我的第一个PHP包,我遇到了一个问题

目前我正在处理一个包,他的主类从另一个包扩展了一个类,因此在我的
composer.json
中,我将扩展的包声明为一个需求:

"require": {
        "php": ">=5.3.0",
        "ext-mbstring": "*",
        "author/BasePackage": "dev-master"
},
而且,如果我发布
composer更新
,我会在我的项目中得到一个很好的
供应商
目录,其中下载了
作者/BasePackage
依赖项

所以我的问题是,在我的主类文件
src\Extended.php
中,我需要手动执行类似于
require\u once\u DIR\u的操作。“/../vendor/autoload.php”
以便自动加载
BasePackage
,这样我就可以执行
扩展类扩展\BasePackage\BasePackage

这样行吗?我应该如何加载我的包依赖项?当我将这个包提交给GitHub左右时,我忽略了
供应商
目录,如果有人在他们的项目中要求它
require\u once\uu DIR\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。“/../vendor/autoload.php”将失败,因为它不会在我预期的位置

我该怎么做

谢谢。

不,这不好

您可以放心地假设使用您的包的任何人都在使用Composer。他将使用作曲家的自动加载器。因此,他能够从包中加载您自己的类,以及您的包所依赖的任何其他类,前提是您将其作为依赖项列在包中

不要手动加载其他类!你不必这么做

包中的测试应该包括引导中的
vendor/autoload.php
,这将允许您的类直接可用,因为其他包类也可以自动加载。任何示例脚本还应包括创建的自动加载程序

如果您的软件包在其他地方使用,则自动加载程序将执行相同的操作:Composer设法下载的所有具有正确自动加载声明的类在包含自动加载程序后都可以直接使用。

否,这不正常

您可以放心地假设使用您的包的任何人都在使用Composer。他将使用作曲家的自动加载器。因此,他能够从包中加载您自己的类,以及您的包所依赖的任何其他类,前提是您将其作为依赖项列在包中

不要手动加载其他类!你不必这么做

包中的测试应该包括引导中的
vendor/autoload.php
,这将允许您的类直接可用,因为其他包类也可以自动加载。任何示例脚本还应包括创建的自动加载程序

如果您的包在其他地方使用,那么自动加载程序的作用是相同的:Composer设法下载的所有具有正确自动加载声明的类在包含自动加载程序后都可以直接使用