我想让Composer自动加载this package。
此套餐可在Packagist
上找到我意识到我需要向composer.json
添加内容,我需要在某处autoload.php
。
唯一应自动加载的类是Webbot.php
。
有人可以给我一步一步的分解来实现这个目标吗?
返回的Google搜索结果是自动加载库的说明。
我需要有关如何编写自动加载库的说明。
答案 0 :(得分:12)
首先,您需要将您的包装结构化为PSR-0或PSR-4。我还没有开始使用PSR-4,因为它刚刚被接受为标准。 Composer仍将在未来很长一段时间内支持PSR-0。
这意味着您必须遵循以下规则:
<Vendor Name>\(<Namespace>\)*<Class Name>
这意味着你的包应该放在你的github存储库中,如下所示:
-src
-Simkimsia
-Webbot
-Webbot.php
-composer.json
-license.md
-{any other base level files}
Webbot.php将在命名空间中:Simkimsia\Webbot
,由目录结构指定。
然后......由于这是一个github包,你可以使用repositories属性将它添加到你的项目composer.json中。
{
"name" : 'test',
"description" : 'Test',
"keywords" : ['test'],
"repositories" : [
{
"type": "vcs",
"url": "https://github.com/simkimsia/webbot.git"
}
],
"require" : {
"simkimsia/webbot" : "dev-master"
}
}
该软件包将可从Composers自动加载中获得,并可以实例化为:
$webbot = new Simkimsia\Webbot\Webbot();
注意:强>
运行composer install
后,将会提供作曲家autoload.php:
/vendor/composer/autoload.php
只需在PHP脚本的开头包含此文件,您的课程就可以使用。