开发composer扩展

初始化项目

在一个空文件夹下,shell 中执行

composer init

根据提示选择对应选项生成composer.json,也可以选择手写composer.json

composer.json 注意事项

  • 你开发的扩展包名就是name属性

例如 "name": "sorry510/string", 包的名称就是sorry510/string, composer 的安装命令为 composer require sorry510/string, 生成的文件所在目录为 vendor/sorry510/string/

{
    "name": "your-vendor-name/package-name",
    "description": "A short description of what your package does",
    "type": "project",
    "license": "MIT",
    "minimum-stability": "stable",
    "require": {}
}
  • 按照 composerpsr-4 规范,在文件中编写对应的 namespace

例如

  • 根目录下的 src 目录下的 Foo.php 文件
<?php

namespace Sorry510;

class Foo {

}

  • 为了实现自动加载机制,就需要在composer.json文件中添加对应的autoload选项
 "autoload": {
     "psr-4": {
        "Sorry510\\": "src/" // 填写namspace的映射目录,如果为根目录,直接写""
     }
 }
  • laravel 扩展可以添加对应包自动发现,注册对应服务
 "extra": {
    "laravel": {
        "providers": [
            "Sorry510\\ConstantsProvider"
        ]
    }
},

编写 php 代码

  • README.md文件,用于展示说明扩展包的使用方式
  • CHANGELOG.md, 用于展示版本变化记录
  • .gitignore文件,用于忽略 git 提交

注册到 Packagist 上

  • 首先需要把项目上传到github上,github项目名称自行创建,必须是 public 项目

  • 然后注册Packagist 账号

  • 之后登录Packagist,点击右上角的 submit,在url中输入github中此项目的地址,然后点击check按钮

    image.png

  • gittag功能可以生成不同版本号,在 Packagist 点击 update 就可以自动生成对应的版本

git tag 1.0.0
git push --tag
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容