项目做多了之后,可能会慢慢总结出自己的代码库出来,当在新的项目中使用的时候,总不能一直是复制粘贴。这个时候,composer就能派上用场了。一个项目开始,使用composer就能够加载所需要的依赖,非常方便。这个时候,来做一个自己的包吧!
使用命名空间
composer自动加载需要用到命名空间,因此所有的代码库都需要使用命名空间,如果没有,那就改吧!使用命名空间之后你可能会打开新世界的大门。
创建composer.json
我假设你已经安装了composer,并且已经会使用了。创建自己的包我们首先需要创建一个composer.json,示例文件如下
{ "name": "cmhc/tests", "description": "a test", "type": "library", "license": "MIT", "authors": [ { "name": "huchao", "email": "hu_chao@139.com" } ], "minimum-stability": "stable", "require": {}, "autoload":{ "psr-4":{ "test\\":"src/" } } }
上面的composer.json有一个比较重要的是autoload,这个表示的是根据某种规范实现自动加载,使用psr4。key为这个包的根命名空间,value为根命名空间的文件夹。
上面composer.json对应的目录结构应该是这样的
test ├── composer.json └── src └── test.php
创建项目代码
项目代码可以放在根目录下面的src目录下面,现在只创建一个示例代码test.php
<?php namespace test; class Test { public function hello() { echo "hello"; } }
安装包
做好了之后就可以测试composer包是否已经做好了,执行composer update。然后在根目录下面创建一个测试文件test.php,内容可以如下:
<?php use test\Test; require __DIR__ . '/vendor/autoload.php'; $test = new Test(); $test->hello();
执行之后输出test,表示我们的自动加载已经成功了。
到这里,一个完整的包就做完了。
赞赏微信赞赏
支付宝赞赏