本次教程中,我已忽略了 Composer 的安装过程 (ps: 安装简单,可百度), 那么,我们直接进入教程环节:
PS: 教程最后,我会附上命令截图
一、首先我们创建一个空的目录,并且运行以下命令初始化一个空白的 composer 包 (命令都是在终端中执行)
-
composer init
二、此时需要输入包名
-
This command will guide you through creating your composer.json config.`
-
Package name (<vendor>/<name>) :
我在这里写了 2free.cn/oreo,回车
三、需要输入描述
-
Description []:
我在这里写了 Test procedure (当然这是一个描述,你可以随便写你程序描述,切记要输入英文),回车
四、需要输入作者
-
Author [Cumin <2937978586@qq.com>, n to skip]:
该选项如果有默认值,可以直接回车,为了演示我再次输入了这项,Cumin mailto:2937978586@qq.com,回车
五、需要输入最低稳定版本
-
Minimum Stability []:
该选项有可选值:stable, RC, beta, alpha, dev 一般填 dev
六、需要输入包类型
-
Package Type (e.g. library, project, metapackage, composer-plugin) []:
可选项在提示中已经有了,我们一般选 library
七、需要输入开源协议
-
License []:
根据自己情况填写,我们填 Apache
八、设置包需要依赖的其他环境或者包
-
Define your dependencies.
-
Would you like to define your dependencies (require) interactively [yes]?
如果需要设置依赖环境或者其他包,则输入 yes 回车,会让你搜索,我们这里给包设置 php 版本必须大于 7.1.0,所以搜索 php。
-
Enter the version constraint to require (or leave blank to use the latest version):
输入最低要求版本号 >=7.1.0
PS: 如果需要设置多个环境要求,则重复搜索填写即可,如果不需要了,则在 Search for a package: 不填写内容,直接回车即可。
九、接下来设置依赖包
-
Would you like to define your dev dependencies (require-dev) interactively [yes]?
我们不需要 直接回车回车,确认信息,yes 回车 初始化完成
-
Do you confirm generation [yes]? yes
-
Would you like to install dependencies now [yes]? yes
十、安装完成
安装完成,可以看到我们的目录生成了如下结构。
vendor 是 composer 存放包的地址,所有的包都存放在该路径中统一管理,并且 composer 提供了命名空间自动加载的功能,我们在使用过程中只需要引入 composer 的统一入口文件即可
-
require "vendor/autoload.php";
但是我们也需要在包的配置文件中写上需要自动加载哪个目录才有效!
编辑 composer.json 文件
这里的路径需要根据你自己的来定,也可以参考以上写法即可。
写完之后需要运行一下命令行 composer dump-autoload
更新 composer 的命名空间与文件夹映射关系。
然后我们创建 src 文件夹,再创建 oreo 文件夹,在里面创建 Test.php 文件
写上命名空间 Oreo; 根据 psr-4 规范,类名要与文件名相同。
-
-
namespace Oreo;
-
class Test
-
{
-
function test()
-
{
-
echo "Form Test -> test()";
-
}
-
}
再在最外层写下 index.php 测试文件,正确做法是创建 demo 文件夹 然后再写测试文件。
-
-
require "vendor/autoload.php";
-
$Test = new Oreo\Test();
-
$Test->test();
于是我们现在的文件目录结构如下,运行 index.php 正确得到内容 Form Test -> test()
composer 包的制作已经讲完了,接下来上传 composer 包的过程,我下次更新。
转载:https://www.2free.cn/archives/367/