• 创建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!!!

  • 相关阅读:
    干嘛
    有一种姑娘 你只想温柔以待
    衡阳拜佛
    浅谈程序员的英语学习【转】
    linux下用C编写的基于smtp的邮件发送程序【转】
    清空消息队列的缓存buffer
    不要对C++类对象或struct对象做memset操作
    xml解析编辑网站
    gdb调试
    喂狗机制 Software Dog
  • 原文地址:https://www.cnblogs.com/wmzll/p/14767449.html
Copyright © 2020-2023  润新知