


Erfahren Sie, wie Sie ein Composer-Paket von Grund auf erstellen und veröffentlichen
怎么发布composer包?下面本篇文章就来带大家了解一下怎么从0创建并发布一个composer包,希望对大家有所帮助!
一、准备工作
注册并登录github账户,github.com
安装好git软件:
注册登录packagist账户:packagist.org/
二、创建线上仓库
1.打开github,点击右上角加号,选择new repository
2.而后,进行相关设置,如下图:
这里需要输入项目名称,描述,是否公开,是否初始化readme,git忽略文件,以及开源协议等信息。
3.拉取线上仓库到本地
完成上面的操作化,会成功后会跳转到仓库页面。
- 然后点击右侧的code按钮,然后再点击复制此仓库的git地址。
- 回到本地,打开git软件,运行clone命令拉取
git clone https://github.com/china-li-shuo/oss-sdk.git
三、composer 初始化
1、先进入项目目录,在git中命令
cd oss-sdk/
2、然后运行初始化命令
composer init
详细设置见上图。
注意:package type :library是仓库,对应提交后的require命令,project是项目,下载后直接能跑起来的,对应create-project命令。
3. 配置autoload
初始化完毕后,打开本地的composer.json文件夹可以进行修改。 附上我的composer.json文件,上面有详细注释
{ "name": "china-li-shuo/oss-sdk", #包名称 "description": "Alibaba cloud, Tencent cloud, qiniu cloud, object storage",#包描述信息 "type": "library",#类型,可选e.g. library, project, metapackage, composer-plugin "license": "MIT",#开源协议 "authors": [ { "name": "china-li-shuo",#作者 "email": "676050059@qq.com"#邮箱 } ], "require": { # 需要安装的扩展 "php": ">=7.1.0", "qcloud/cos-sdk-v5": ">=2.0", "aliyuncs/oss-sdk-php": "^2.4.0", "phpunit/phpunit": "^5.0|^6.0", "qiniu/php-sdk": "^7.3" }, "autoload": { # 自动加载: 注意了, 这里有 psr-4, psr-2 多种规范, 并且,注意目录和命名空间 "psr-4": { "lishuo\": "src" } } }
更改完毕后进行保存,而后运行命令重新载入。
composer dump-autoload
四、创建基本包代码
这里对应上面的autoload->psr-4里面的配置,还有flies配置 先创建一个src目录
五、提交到github仓库
1. 切换到本地目录
cd oss-sdk
2.然后运行命令git add .命令,把文件提交到本地仓库
git add .
3.然后git commit -m 添加提交注释
git commit -m '第一个composer包'
4.然后git push进行提交,把文件提交到github
git push
报错:
$ git push origin master fatal: unable to access 'github.com/china-li-sh…': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
参考资料:https://blog.csdn.net/weixin_41010198/article/details/119698015
https://blog.csdn.net/u013894429/article/details/78960813
六、提交到packagist
- 打开github项目地址,复制网址:如github.com/china-li-sh…
- 然后把github项目地址粘贴到框中
点击提交,如果有重名的会提示,不用管直接点submit
看到下图,就成功了。
可以复制命令试一下是否能成功。
执行composer require china-li-shuo/oss-sdk
不成功,说明你的包没有版本号, 你的包要进行发布版本信息,也就是说你的github仓库要新增tag
标签就行了。
发布版本参考链接:https://juejin.cn/post/6938227254191194120#heading-7
七、composer更换镜像源
更换镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
查看composer配置
composer config -l -g
初始化配置(无需运行)
composer config -g --unset repos.packagist
更多编程相关知识,请访问:编程教学!!
Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie ein Composer-Paket von Grund auf erstellen und veröffentlichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Bei der Entwicklung von Projekten stoßen Sie häufig auf einen veralteten Code. Obwohl diese Codes noch ausgeführt werden können, können sie in zukünftigen Versionen entfernt oder geändert werden. Wenn diese veralteten Codes nicht rechtzeitig verarbeitet werden, kann dies während des Upgrades Probleme verursachen. Ich habe dies in einem Projekt begegnet, das die Funktion nach dem Upgrade fehlgeschlagen hat. Glücklicherweise habe ich dieses Problem erfolgreich gelöst, indem ich Symfony's Depresscontracts Library verwendet habe.

In der Projektentwicklung ist es häufig erforderlich, Befehlszeilen-Tools zu erstellen, um die täglichen Aufgaben zu vereinfachen oder Prozesse zu automatisieren. Das Erstellen einer Befehlszeilenschnittstelle, die schön und leicht zu testen ist, ist jedoch nicht einfach. Vor kurzem habe ich dieses Problem gestoßen, als ich ein Projekt entwickelt habe, für das Befehlszeilen -Tools erforderlich sind. Nach einiger Erkundung fand ich die Symfony/Console -Bibliothek, die den Erstellungsprozess von Befehlszeilenschnittstellen erheblich vereinfacht.

Ich habe ein schwieriges Problem, wenn ich mich mit einem Projekt befasse, das eine große Anzahl von asynchronen Anfragen effizient behandeln muss: wie man diese Anfragen behandelt, ohne das Programm zu blockieren. Nachdem ich mehrere Methoden ausprobiert hatte, stellte ich fest, dass die Verwendung der Bizzle -Bibliothek dieses Problem perfekt lösen kann. Es macht den Code nicht nur lesbarer, sondern verbessert auch die Leistung des Programms erheblich.

Bei der Entwicklung eines YII2-Projekts, bei dem es sich um Echtzeit-Benachrichtigungen handelt, habe ich ein Problem gestoßen: So präsentieren Sie Benutzermeldungen und Benachrichtigungen den Benutzern effizient. Die herkömmlichen Pop-up-Fenster und Eingabeaufentwicklungsboxen sind nicht effektiv genug und die Benutzererfahrung ist schlecht. Nach einigen Erkundungen fand ich das Plugin GBKSoft/Yii2-toaStr, das nicht nur mein Problem löste, sondern auch die Benutzererfahrung erheblich verbesserte.

Bei der Entwicklung eines Laravel -Projekts stieß ich auf ein gemeinsames, aber schwieriges Problem: So behandeln Sie die Dateien und Bilder und die Überprüfung von Bildspeichern und Dateiverifizierung bei verschiedenen Auflösungen effizient. Ich habe verschiedene Methoden ausprobiert, aber die Ergebnisse waren nicht zufriedenstellend. Schließlich fand ich die Bibliothek Aldozumaran/Uploader, die sich leicht durch Komponist integriert und meinen Workflow erheblich vereinfacht.

Ich habe eine Herausforderung gestoßen, als ich ein Projekt entwickelt habe, das eine häufige Interaktion mit externen APIs erfordert: So behandeln Sie mit HTTP -Anforderungen effizient. Nachdem ich mehrere Methoden ausprobiert hatte, fand ich die Feedhi/Standard -Bibliothek, die meinen Entwicklungsprozess nicht nur vereinfachte, sondern auch die Leistung des Programms erheblich verbesserte.

Während der Entwicklung eines Laravel -Projekts habe ich auf eine Anforderung gestoßen: Ich hoffe, schnell eine einfache Blogging -Funktion auf einer vorhandenen Website hinzuzufügen. Obwohl ich ein gewisses Verständnis von Laravel habe, ist es für mich immer noch eine Herausforderung, ein vollständiges Blogging -System zu implementieren. Nach einigen Nachforschungen fand ich ein Paket namens Didcode/Laravel-Blog, mit dem ich meinem Laravel5-Projekt einfach Blogging-Funktionen hinzufügen kann.

Bei der Verarbeitung von CivicRM-Daten muss ich häufig einige Vorgänge aus der Befehlszeile ausführen, aber man stelle fest, dass manuelle Vorgänge nicht nur umständlich und fehleranfällig sind. Ineffizienz wird zu einem großen Problem, insbesondere wenn die Stapelverarbeitung von Kontaktdaten verarbeitet wird. Nach einiger Exploration fand ich die Bibliothek GSL/Civicrm-Cli-Utils, die meinen Workflow stark vereinfachte und die Verarbeitungseffizienz erheblich verbesserte.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver Mac
Visuelle Webentwicklungstools

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.