Composer ist ein
Abhängigkeitsmanagement-Tool
fürPHP5.3
oder höher. Sie können damit die Codebibliotheken deklarieren, von denen Ihr Projekt abhängt, und sie werden für Sie in Ihrem Projekt installiert. Damit können wir ganz einfacheinen Befehl
verwenden, um in unseren Projekten auf andere hervorragende Codes zu verweisen.PHP5.3
以上 的一个依赖管理工具
。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。有了它我们就可以轻松的使用一个命令
将其他优秀代码引用到我们的项目中来。
java有maven
,前端有npm
,安卓有Gradle
,作为世界上最好的语言
也就有了composer
composer require
:安装一个软件包composer update
:会检测新版本包需要的环境和依赖自动实现工具包的升级composer install
:如果没有composer.json文件,会安装composer.json中的依赖composer init
:会初始化一个composer.json配置文件在站点下新建一个目录,名为blog
。
1、目录下执行:composer init
执行完后,让我们输入一个包名,我就叫guangtouqiang/blog
把。
包名
name
- 包的名称,它包括供应商名称和项目名称,使用 / 分隔。
- 对于需要发布的包(库),这是必须填写的。
- 例如,phpmailer/phpmailer
2、执行guangtouqiang/blog
:
接下来让输入描述。
描述
description
- 一个包的简短描述。通常这个最长只有一行。
- 对于需要发布的包(库),这是必须填写的。
3、输入描述this is guangtouqiang test bag
4、输入作者名称(可选)
作者
authors
- 这个对象必须包含以下的所有属性。
- name: 作者的姓名,通常使用真名。
- email: 作者的 email 地址。
- homepage: 作者主页的 URL 地址。
- role: 该作者在此项目中担任的角色(例:开发人员 或 翻译)。
5、输入最低稳定版本
可用的稳定性标识:dev、alpha、beta、RC、stable。
,一般选择dev
。
6、输入包类型
🎜🎜2. Tools zur Abhängigkeitspaketverwaltung🎜🎜Java hat包类型
type
maven
, Front-End hat npm
und Android hat Gradle
hat als die beste Sprache der Welt
auch composer
🎜🎜🎜🎜3 Vorteile von Composer🎜composer require
: 🎜Installieren Sie ein Softwarepaketcomposer update : 🎜 Erkennt die Umgebung und Abhängigkeiten, die für die neue Version des Pakets erforderlich sind, um das Toolpaket automatisch zu aktualisieren<br><img src="https://img.php.cn/upload/%20Article/000%20/000/020/e712fc162ba3948c615e8dcb93b6753f-3.gif" alt="Bildbeschreibung hier einfügen">
Composer-Installation
: 🎜Wenn keine Composer.json-Datei vorhanden ist , Composer wird installiert. Abhängigkeiten in .jsoncomposer init
: 🎜 initialisiert eine Composer.json-Konfigurationsdateiblog
. 🎜🎜🎜1. Im Verzeichnis ausführen: composer init
🎜🎜guangtouqiang/blog
. 🎜🎜🎜Paketname name
🎜guangtouqiang/blog
aus:🎜🎜description
🎜das ist eine Guangtouqiang-Testtasche
🎜🎜Geben Sie den Namen des Autors ein (optional)
🎜🎜🎜🎜🎜 Autoren authors🎜dev, alpha, beta, RC, Stable.
, wählen Sie im Allgemeinen dev
. 🎜🎜🎜6. Eingabepakettyp🎜🎜🎜Pakettyp type
🎜library。
默认为 library
我们选择1,library
即可!
7、需要输入开源协议
选择输入GPL,LGPL,BSD,MIT,Apache
这些开源协议即可:
8、是否依赖于其它包,是否依赖于其它环境,这边都yes即可。
Search for a package
:选择搜索php。
9、生成成功。
此时,目录下已经有个composer
这些配置:
看下刚刚生成的composer.json
:
{ "name": "guangtouqiang/blog", "description": "this is guangtouqiang test bag", "type": "1", "require": { "php": "^7.0" }, "license": "Apache-2.0", "authors": [ { "name": "guangtouqiang", "email": "xiaozhengguo521@gmail.com" } ], "minimum-stability": "dev"}
再次基础上增加:
{ "name": "guangtouqiang/blog", "description": "this is guangtouqiang test bag", "type": "1", "require": { "php": "^7.0" }, "license": "Apache-2.0", "authors": [ { "name": "guangtouqiang", "email": "xiaozhengguo521@gmail.com" } ], "minimum-stability": "dev", "autoload": { "psr-4": { "guangtouqiang\\": "src/guangtouqiang" } }}
命令行执行:composer dump-autoload
,更新composer的命名空间与文件夹映射关系。
同样,需要新建一个src
和guangtouqiang
的文件夹:
在根目录新建个index.php
测试一波:
输出:
注意命名空间的层级与文件夹层级是否相同,类名与文件名相同才能自动加载。
1、在github上新建个仓库
2、将本地的composer包上传到新仓库
git init
git add .
git commit -m "xxx"
git remote add origin 你的远程仓库地址
git push -u origin master
3、登录https://packagist.org/packages/submit
4、将你github上的仓库地址复制进去:
5、配置webhook:
6、复制上图地址到github。
Webhook
hinzufügen: webhook
:
这时候,github仓库与packagist已经建立了关联。但是还需要进行发布正式版本才能使用。
7、打版本标签
git tag -a v1.0.1 -m "第一版"
git push origin v1.0.1
此时,已经标签成功了,从packagist能看到我们所有的版本。
执行composer require xx/xxx
7. Markieren Sie die Version git tag -a v1.0.1 -m "erste Version"
git push origin v1.0.1
Zu diesem Zeitpunkt Die Etikettierung ist gelungen und alle unsere Versionen sind bei packagist einsehbar. Führen Sie Composer aus require xx/xxx
kann von anderen verwendet werden.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie ein Komponistenpaket handschriftlich und laden es zur Veröffentlichung hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!