创建PHP组件(composer)

很久就想写一个关于PHP组件的文章,但是由于时间问题,没有充分足够时间去详细了解。

今天抽空,整理一下这断断续续的细碎的知识(捂脸)。

首先,需要了解的内容:composer,组件。

PHP组件库:https://packagist.org

composer

composer简单的理解是组件包管理工具,正式理解为“A Dependency Manager for PHP”,来自官网(https://getcomposer.org),翻译为:PHP依赖管理。

composer版本,v1,v2,本人建议使用v2,具体安装和更新请参考官网手册,本人使用感受v2优点直接体现在访问,下载速度上。

组件(本人一直不理解,组件和插件到底有什么区别)

组件,是软件的一部分,软件的组成部分。组件就是对象,是对数据 和方法的简单封装。

插件,近乎组件,有统一接口。插件是一种遵循一定规范的应用程序接口编写出来的程序。可插拔。

composer构建PHP组件如下:

1. 命名空间:包含组件的厂商名和包名。

  每个组件的名称都由全局唯一的厂商名和包名组成,以防止与其他组件有名称冲突(厂商名和包名都小写)。

  这里有可能会误以为,组件的命名空间必须和组件的厂商名和包名一致。其实不然,组件使用的命名空间与组件的厂商名和包名无关。

  厂商名和包名只是为了让packagist和composer识别组件。而组件的命名空间是为了在PHP代码中使用组件。

2. 目录结构:

  src/

    这个目录包含组件的源码(例如PHP类文件)

  tests/

    这个目录包含组件的测试

  composer.json

    composer配置文件。这个文件用于描述组件,还会告诉composer的自动加载器,把组件中符合PSR-4规范的命名空间对应到src/目录。

  README.md

    这个Markdown文件提供关于组件的信息,包括组件的名称,说明,作者,用法,贡献者指导方针,软件许可证和要感谢的人。

  CONTRIBUTING.md

    这个Markdown文件说明别人如何为这个组件做贡献

  LICENSE

    这个纯文本文件包含组件的软件许可证

  CHANGELOG.md

    这个Markdown文件列出组件每个版本的改动

3. composer.json

  PHP组件中必须有composer.json文件,而且这个文件的内容必须是有效的JSON。  

  

     name:是组件的厂商名和包名,二者之间使用/分隔。这个属性会在packagist中显示。

  description:组件的描述。这个属性的值会在packagist中显示。

  keywords:这个属性是几个描述组件的关键字。这些关键字帮助别人在packagist中找到这个插件

  homepage:组件的网站URL

  license:组件采用的软件许可证。

  authors:是一个数组,包含项目中每个作者的信息。每个作者的信息至少要包含姓名和网站URL

  support:这是组件的用户获取技术支持的方式。可以设置为邮箱或者URL

  require:这个属性列出组件自身依赖的组件。我们应该列出每个依赖的厂商名和包名,以及最小版本号。还可以列出组件需要的最小PHP版本号。

      在开发环境和生产环境都会安装这个属性中列出的所有依赖

  require-dev:这个属性的值与require属性类似,不过列出的是开发这个组件所需依赖。例如,通常会把单元测试phpunit当做开发依赖,以便组件的其他贡献者能编写

      和运行测试,这些依赖只会在开发时安装,在生产环境中使用时不会安装

  suggest:这个属性的值与require属性类似,不过只是建议安装的组件,以防与其他组件合作时需要。与require属性不同,这个对象的值是自有的文本字段,用于描述

       每个建议安装的组件。composer不会建议安装这些组件的。

  autoload:这个属性告诉Composer的自动加载器如何自动加载这个组件。建议使用符合PSR-4规范的自动加载器,在PSR-4属性中,我们要把组件的命名空间前缀

      与相对根目录文件系统路径对应起来(说白了,就是命名空间的路径和文件夹的路径一致),这样我们的组件就符合PSR-4自动加载器标准了。

4. README文件

  README文件通常是使用者最先阅读的文件。对托管在GitHub中的组件来说,更是如此。因此,在这个文件中我们需要提供如下信息(建议):

    组件的名称和描述

    安装说明

    用法说明

    测试说明

    贡献方式说明

    支持资源

    作者信息

    软件许可证

好了,创建一个PHP组件需要了解,大概就是这些,具体内容,请自行查阅!

实际操作如下:

  两种方式,在目录下手动创建composer.json或者通过composer init命令行创建

  仅提供命令行创建方式说明(如下图,是使用composer v2创建的):

  

   步骤说明(回车进行下一步骤):

    1. composer init 初始化

    2. Package name 填写厂商名和包名

    3. Description:填写组件描述

    4. Author:填写组件作者信息

    5. Minimum Stability:填写版本

    6. Package Type:填写组件类型

    7. License:填写软件协议

 至此一个PHP组件的第一步工作完成,剩下的就是补充组件功能代码,具体组织方式自行规划,可参考现有组件组织方式!

  Take your time!!!

原文地址:https://www.cnblogs.com/wmzll/p/14767449.html