composer 是一个包管理器 可以托管其他项目资源,保持代码最新,复用代码等。
官方文档 https://docs.phpcomposer.com/02-libraries.html
安装composer 后 创建项目的composer.json文件
composer init
按照提示输入内容
详情可看 https://blog.csdn.net/qq_37500838/article/details/104209671
然后将带有compose.json的项目发布到github或者码云 然后到 packageist提交你的包 https://packagist.org/packages/submit
如果项目没有发布为released版 在引入模块时需要 附带 dec-master版本
引入项目
composer require 你的名称/模块名:dev-master
如果以后需要更新最新资源 可以用
composer update
针对提交git后需要自动响应最新版本的可以用webhook的方式回调通知 github可以在界面直接配置参数提示 其他git托管平台需要中转提醒
packagist APITOKEN 获取地址 https://packagist.org/profile/
PHP后台代码演示
public function composer_notify() {
if ($_SERVER['HTTP_X_GITEE_TOKEN']!='你的token验证') {
exit('断开');
}
$headers = ['Content-Type:application/json'];
$data = '{"repository":{"url":"'.urldecode($_GET['url']).'"}}';
echo curl_post("https://packagist.org/api/update-package?username=packagist账号&apiToken=packagistAPITOKEN",$data,$headers);
exit;
}
if (!function_exists('curl_post')) {
// CURL发送
function curl_post($url, $jsonData='',$headers=[]) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
if ($headers) {
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
}
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
}
奇技淫巧 之
全局函数自动注册
在compose.json文件中添加如下文本 系统会检测composer配置 加载你要求的php文件
"autoload":{
"files":[
"helper_string.php"
]
}