gpt4 book ai didi

php - 如何创建供 Composer 自动加载使用的库?

转载 作者:可可西里 更新时间:2023-11-01 13:41:26 25 4
gpt4 key购买 nike

我想制作this package由 Composer 自动加载。

此包在 Packagist 上可用

我意识到我需要向 composer.json 添加一些东西,并且我需要在某处有一个 autoload.php

唯一应该自动加载的类是 Webbot.php

谁能给我一步一步的分解来完成这个?

返回的 Google 搜索结果是自动加载库的说明。

我需要有关如何编写可自动加载库的说明。

最佳答案

首先,您需要将包结构化为 PSR-0 或 PSR-4。我还没有开始使用 PSR-4,因为它刚刚被接受为标准。在未来很长一段时间内,Composer 仍将支持 PSR-0。

这意味着您必须遵守以下规则:

  • 完全限定的命名空间和类必须具有以下内容结构<Vendor Name>\(<Namespace>\)*<Class Name>
  • 每个命名空间都必须有一个顶级命名空间(“供应商名称”)。
  • 每个命名空间都可以有任意数量的子命名空间。
  • 每个 namespace 分隔符都转换为 DIRECTORY_SEPARATOR从文件系统加载。
  • CLASS NAME 中的每个 _ 字符都被转换为DIRECTORY_SEPARATOR。 _ 字符在命名空间。
  • 完全限定的命名空间和类在以下情况下以 .php 为后缀从文件系统加载。
  • 供应商名称、命名空间和类名称中的字母字符可以是小写和大写的任意组合。

Full FIG guidelines here

这意味着您的包应该按如下方式在您的 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 后,Composers autoload.php 将可用。 :

/vendor/composer/autoload.php

只需将此文件包含在您的 PHP 脚本的开头,您的类就可用了。

关于php - 如何创建供 Composer 自动加载使用的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21137019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com