Php 如何创建由composer自动加载使用的库?

Php 如何创建由composer自动加载使用的库?,php,composer-php,Php,Composer Php,我想让作曲家自动演奏 此套餐可在 我意识到我需要在composer.json中添加一些东西,我需要在某个地方有一个autoload.php 唯一应该自动加载的类是Webbot.php 有人能给我一步一步的分解来完成这个吗 返回的Google搜索结果是自动加载库的说明 我需要关于如何编写自动加载库的说明。首先,您需要使用PSR-0或PSR-4对包进行结构化。我还没有开始使用PSR-4,因为它只是刚刚被接受为一个标准。Composer在很长一段时间内仍将支持PSR-0 这意味着您必须遵守以下规则:

我想让作曲家自动演奏

此套餐可在

我意识到我需要在
composer.json
中添加一些东西,我需要在某个地方有一个
autoload.php

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

有人能给我一步一步的分解来完成这个吗

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


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

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

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

  • 完全限定的命名空间和类必须具有以下内容 结构
    \(\)*
  • 每个名称空间必须有一个顶级名称空间(“供应商名称”)
  • 每个名称空间可以有任意多个子名称空间
  • 每个名称空间分隔符在 从文件系统加载
  • 类名中的每个uu字符都转换为 目录分隔符。_u字符在 命名空间
  • 完全限定的命名空间和类在 从文件系统加载
  • 供应商名称、名称空间和类名中的字母字符 可以是小写和大写的任意组合

这意味着您的包应该在github存储库中布局如下:

-src
    -Simkimsia
        -Webbot
            -Webbot.php
-composer.json
-license.md
-{any other base level files}
根据目录结构的指示,Webbot.php将位于命名空间中:
Simkimsia\Webbot

然后。。。由于这是一个github包,您可以使用repositories属性将其添加到projects composer.json中

{
    "name" : 'test',
    "description" : 'Test',
    "keywords" : ['test'],
    "repositories" : [
    {
        "type": "vcs",
        "url": "https://github.com/simkimsia/webbot.git"
    }
    ],
    "require" : {
        "simkimsia/webbot" : "dev-master"
    }
}
该软件包可从Composer autoload获得,并可实例化为:

$webbot = new Simkimsia\Webbot\Webbot();
注意: 一旦您运行了
composer安装
,Composers autoload.php将在中可用:

/vendor/composer/autoload.php

只要在PHP脚本开始时包含此文件,您的类就可以使用。

您想将此文件发布到PackageGist上供其他人使用,还是只想让它在您自己的项目中工作?请查看此脚本底部的注释。它说你可以包括
vendor/composer/autoload.*.php
文件,并修改它们返回的关联数组来配置你自己的自动加载器。我代表提问者回答Chris的问题。他是我的兄弟,我正在指导他如何使用它。将此发布到PackageGist供所有人使用。@GuzAlexander哪个文档?@KimStacks在我之前的评论中,在wordl
doc
上有一个链接。我想知道如何正确填写“require”部分?我在gitlab有repo,比如“username/reponame”,我所有的类都在“src/MyVendorName/MyLibName/”下——我应该写在“require”中吗?“用户名/reponame”或“myvendorname/mylibname”?始终是供应商/libname这是一个PSR-1/PSR-4自动加载器,因此遵循严格的规范。为了使其更具特色,我的选择是:“repo_用户名/repo_名称”或“myvendorname/mylibname”?