💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # Composer ## composer常用命令 > 显示composer包版本: composer show -i > > composer install根据composer.lock来安装包 > > composer search {namespace}根据namespace搜索包 > > composer show {namespace}显示一个包的版本和require等等 > > composer create-project --prefer-dist {namespace}文件夹名版本号下载项目 > > composer install —-no-dev //—-no-dev意思不下require-dev里面的包,不加这个参数表示全下 > > composer.json中scripts{ //可以写脚本,composer运行的时候执行这个脚本} > >自动加载 >composer dump-autoload >composer dump-autoload -o >composer install/update --ignore-platform-reqs 安装升级的时候忽略版本 ~~~ composer create-project 作者名/项目名 安装laravel的话就是: composer create-project --prefer-dist laravel/laravel --prefer-dist的意思是直接从dist下载而不是clone版本控制源码; ~~~ ## 发布composer包 1. 先去github上创建一个项目,然后克隆到本地,进入这个项目中 2. 执行 `composer init` 命令后,引导我们填写 `composer.json` 配置信息: ``` Package name报名(按照格式填) Author作者: jdxia <825455423@qq.com> Minimum Stability最小版本: dev Package Type (包的类型) : php License开源协议: MIT 接下来定义require和require-dev需要的包 Do you confirm generation确定上面的composer.json文件吗? : yes 你想把vendor文件夹加到.gitignore吗? : yes ``` 至此该项目文件夹下生成 `composer.json` 配置文件。 3. 把这个项目push到github上,然后去packagist.org网站注册登录下,登录成功旁边有个submit 点击submit,然后把github项目的下载地址复制到那,上传就可以 然后在个人中心会看到这个包, 个人中心会看到这个 `Please set up the GitHub Service Hook for Packagist so that it gets updated whenever you push!` 就是让我们添加个自动更新的,去项目的github的setting,侧边有service,点击,然后添加搜packagist确定.我们接下来输入用户名,然后token,这个token在packagist的个人中心有,然后点确定.我们添加好了,再点击进去有个test,可以测试下的 然后我们packagist和github会同步,每次push,packagist都同步 我发现初次提交的版本是dev-master,使用的时候还要加上dev-master ``` composer require wenqing/laravel-edit:dev-master ``` ## composer引用和版本 使用 `~ `指定最低版本,但允许版本号的最后一位数字上升 > “~2.8.1”意思就是>=2.8.1到<2.9.0 > > “~2.8”意思就是>=2.8.0到<3.0 > 最大版本加一 > “^2.8.1”意思是就是>=2.8.1到<3.0 > > “^0.8”意思是>=0.8到<0.9 > > 依赖声明放在composer.json中,里面的require就是要加载的package ~~~ { "require":{ "Package name/vendor name":"版本号", } } ~~~ ### 参考资料: - [创建 composer 包](http://blog.csdn.net/terry_water/article/details/50477023) - [composer 中文文档](http://docs.phpcomposer.com/) - [composer manual](https://getcomposer.org/doc/)