Composer发布自己的插件包
内容目录
通过Yii2 widget 结合Bootstrap4、Adminlte3,定制自己的开发扩展类库。可以通过packagist发布成composer安装包,对于项目解耦分离,但又可以快速安装复用。
Structure Extensions
composer扩展规范
版本扩展与发布源
发布composer平台 packagist.org
composer.json 文件描述
{
"name": "brucebnu/yii2-widget-pack", //包的名称
"description": "about Yii2 widget with bootstrap4、adminlte3", //包的功能描述
"authors": [ //作者信息
{
"name": "brucebnu",
"email": "bruce.bnu@gmail.com",
"homepage": "https://www.cebumaker.com"
}
],
"homepage":"https://github.com/brucebnu/yii2-widget-pack", //包的源码地址
"license": "MIT", //遵循的协议
"keywords": [ //包的关键字
"Yii2",
"widget",
"bootstrap4",
"adminlte3",
"php"
],
"require": { //包的一些依赖
"php": ">=7.3.7"
},
"autoload": { //自动加载
"psr-4": { //自动使用的 psr-4 格式
"pf\\arr\\": "src/" // key命名空间,value本地代码路径
}
},
"autoload-dev": {
"psr-4": {
"example\\": "example"
}
}
}
初始化自己的扩展包
# 创建自己的包结构目录
yii2-widget-pack
|
|-- src 包源码
| |-- build 功能代码
| |-- PFarr.php 包的门面
|
|-- example 一些实例
|
|-- README.md
|
|-- composer.json 下面生成
成自己的composer.json
包根目录,
composer init
输入你想要生成的包名,
输入你的包的描述,about Yii2 widget with bootstrap4、adminlte3
输入作者,brucebnu
"minimum-stability": "stable", // dev-master
ackage Type (e.g. library, project, metapackage, composer-plugin) []: composer-plugin
License: MIT
是否有依赖
ould you like to define your dependencies (require) interactively [yes]? no
修改composer.json 文件
-
Authors
"authors": [ { "name": "Bruce Bnu", "email": "bruce.bnu@gmail.com", "homepage": "https://www.cebumaker.com/" } ],
-
autoload
composer包的自动加载,是一个github项目,类命名空间指向当前目录"autoload": { "psr-4": { "brucebnu\\affix\\": "src" // key是源码中的命名空间,value是源码目录 } }
项目开发调试包文件,
-
在开发目录创建一个软连接,指向上面github的composer包文件
下面在开发调试项目中,开发自动加载这个包文件,进行开发调试"autoload-dev": { "psr-4": { "tests\\": "tests/", "bnu\\widgets\\": "brucebnu/yii2-widget-pack/src" // 命名空间对应本地软连接路径 } },
最后两边别忘记执行,composer dump,更新map文件,用于自动加载
-
在配置文件添加一个别名
<?php return [ 'components' => [ ], 'aliases' => [ 'bnu/widgets' => '@backend/common/widget-pack/src', ],
];
以上两种手动添加扩展的方式,目的把抽象扩展、类库与开发项目解耦分离,但又可以关联开发调试。
可以举一反三,如果我们再 GitHub 上看到一个扩展不能用 composer 下载下来怎么办?其实我们可以自己定义一个 vendor 目录,然后给扩展配置一个路径别名就是可以用的。
## 发布原理
-- 代码提交到github上,获得一个项目url地址,Git基本提交操作;
-- [https://packagist.org/](https://packagist.org/ "https://packagist.org/"),使用github登录,复制packagist的show API Token
-- 来到github的项目首页,选择项目settings,左侧选择integrations & services,Add Services,搜索Packagist,按照要求填写上面packagist的show API Token
-- 回到packagist,填写github的项目地址,submit packagist
## Composer require vender/name 安装测试
遇到:Your requirements could not be resolved to an installable set of packages
composer install --ignore-platform-reqs 或者 composer update --ignore-platform-reqs
忽略安装版本
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...