• 0
  • 0

composer 使用记录

2022-01-24 425 0 admin 所属分类:PHP 记录

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"
    ]
}


返回顶部