这段时间比较忙, 一直没时间写点东西, 今天抽空随便写写.
背景: 在新公司发现一个现象, 很多已经工作六七年的老程序员竟然不会用 git, 也不会在网上搜索, 而对于 使用 composer 开发包也就更不了解了, 现在我就做个入门总结.
不说废话, 直奔主题 -- 鲁迅 ^_^
参考文档: https://laravel-china.org/docs/composer/2018
协议: http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
步骤:
创建项目目录
- mkdir composer-test
- cd comopser-test
初始化
composer init
提示进行配置 packagist 信息:
输入项目命名空间 name: 其实就是 packagist 名称, 建议 github 用户名 / 项目名称, leesin/composer-test
项目描述 Description: 项目描述, 会现在是 packagist 项目介绍中
输入最低稳定版本: stable, RC, beta, alpha, dev
输入项目类型: library, project, metapackage, composer-plugin
输入授权类型: 开源软件 一般选择 MIT
输入依赖信息: yes-> 搜索包名 (可以是 php 等)-> 输入版本
=>= <= 之类的
是否需要 require-dev: 同上
进行生成: yes, 生成 composr.json
上传 github
- git init && echo 'hello world'>> README.md
- git add . && git commit -m'init'
git remote add origin 仓库地址
git push origin -u 仓库地址
提交 packagist
将 github 上的包提交到 packagist 注册
submit-> 输入仓库地址 ->check-> 通过检测就提交到 packagist 了
如果提示已经存在, 可修改包名或者直接提交
设置 composer 包自动更新
默认情况下, github 代码更新, composer 包是不自动更新的
方案: 使用 github 服务钩子
setting->Integrations & services ->Add service 搜索 packagist-> 填写资料:
user: packagist 的用户名
token:packagist.org 中 Profile show API Token 查看
domain: https://packagist.org/
edit -> test service ,[Okay, the test payload is on its way. ] 就可以自动更新了
使用
通过 packagist 拉取 github 代码
composer create-project packagist 名 project 名 --prefer-dist dev-master [ 指定版本 ]
引用其他包
composer require package_name
实现自动加载:
include vendor/autoload.php
或者
修改 composer.json, 增加 autoload 配置项, files 表示要自动加载的文件, psr-4 表示要自动加载的 命名空间
classmap 一般用来对某些开发类自动加载, psr-4 则是项目代码的自动加载, psr-0 基本由 psr-4 替代, files 模式主要针对全局 helper 之类的 function 载入, 配置完成后执行 composer dump-autoload 即可
- "autoload":{
- "files":[
- "src/functions.php",
- "",
- ...
- ],
- "psr-4":{
- "Leesin\\" : "src", // 前边命名空间, 后边为目录
- }
- }
composer dump / dump-autoload 按照配置文件, 重新加载配置
补充: 常用包结构
- .
- composer.json
- README.md
- src // 源码目录
- Hello.php
- mkdir src && touch src/Hello.php
- <?php
- namespace Leesin;
- class Hello
- {
- public static function SayHello(){
- return 'hello world';
- }
- }
配置自动加载
- "autoload":{
- "psr-4":{
"Leesin\\":"src/" # "命名空间 \\":"目录名称 /", 表示 src 下的命名空间为 Leesin
- }
- }
- composer dump
创建测试文件 touch test.php
- <?php
- require __DIR__.'/vendor/autoload.php';
- use Leesin\Hello;
- echo Hello::SayHello();
测试: php test.php 输出 hello world 表示成功
git tag 发布稳定版本 composer 包
- git tag -a v0.1 -m 'version 0.1'
- git push origin --tags
在 packagist 中刷新即可看到
来源: http://www.bubuko.com/infodetail-2743812.html