前提
默认已经安装好了 composer
生成 composer.json
确定 composer 根目录
以管理员身份进入命令窗口,切换到刚新创建的目录位置,并初始化 composer 包
composer init
命令窗口返回提示
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>):
这里写包的名称(可接受的字符范围: [a-z0-9_.-]+ ),我写的是 wang/phpcommoncode,回车
输入描述
Description []:
随便填,中英文都可以。
输入作者
Author [w263756314 <263756314@qq.com>, n to skip]:
使用默认值,直接回车即可。
输入最低稳定版本
Minimum Stability []:
它是一个数组,可选值有如下:
stable, RC, beta, alpha, dev
我选的是 dev
输入包类型
Package Type (e.g. library, project, metapackage, composer-plugin) []:
我填的是 library
输入开源协议
License []:
我填的是 Apache-2.0
设置需要依赖的包
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]?
需要就直接 yes
Search for a package:
填写 php
Enter the version constraint to require (or leave blank to use the latest version):
填写 >=5.6.0
设置完成后,会继续返回搜索包,不需要再设置其它依赖或包,则直接回车。
Would you like to define your dev dependencies (require-dev) interactively [yes]?
直接回车
设置路径
Add PSR-4 autoload mapping? Maps namespace "Wang\Phpcommoncode" to the entered relative path. [src/, n to skip]:
默认是 src ,不需要更改就直接回车。
至此,composer.json 生成完毕。
书写源码
约定根目录为 composer.json 所在目录
在 根目录下的src 目录里写入代码。
比如:
<?php
//ArrayTools.php文件
namespace Wang\Phpcommoncode;
class ArrayTools{
}
创建demo调用
在根目录创建 test.php 文件
<?php
require "vendor/autoload.php";
$arrayTools = new Wang\Phpcommoncode\ArrayTools();
$arrayTools->test();
注意点
1、composer.json 的包名即命名空间路径,即:【Wang\Phpcommoncode】
2、根目录下的 src 目录为需要存放源码的根目录,不需要在命名空间里声明。
3、如果无法分清以上2个目录,可以看composer.json文件里的声明:
"autoload": {
"psr-4": {
"Wang\\Phpcommoncode\\": "src/"
}
},
《创建自己的composer包》有1条评论