但是我们也需要在包的配置文件中写上需要自动加载哪个目录才有效哈!
编辑composer.json文件
这里的路径需要根据你自己的来定,也可以参考以上写法即可。
写完之后需要运行一下命令行composer dump-autoload
更新composer的命名空间与文件夹映射关系。
上一步骤非常重要 漏了就不正常执行了。
然后我们创建src
文件夹,再创建siam
文件夹,在里面创建Test.php
文件
写上命名空间 Siam; 根据psr-4规范,类名要与文件名相同。
<?php
//Test.php文件
namespace Siam;
class Test
{
function test()
{
echo "Form Test -> test()";
}
}
PHP
Copy
再在最外层写下index.php测试文件,正确做法是创建demo文件夹 然后再写测试文件。
<?php
require "vendor/autoload.php";
$Test = new Siam\Test();
$Test->test();
PHP
Copy
于是我们现在的文件目录结构如下,运行index.php正确得到内容Form Test -> test()
可以根据你自己的想法来写类,只需要注意命名空间的层级与文件夹层级相同,类名与文件名相同即可自动加载。
上传composer包
我们需要把包上传到仓库中,别人才可以通过composer命令安装
我们需要先把包上传到github中,再把github仓库地址复制到composer官方仓库提交,composer就会自动拉取你的包并且提供给别人下载安装了!
首先在github上创建仓库
在你本地电脑上运行命令,将我们刚刚创建的示例包文件与github仓库关联起来,并推送上去。
推送成功之后,复制仓库的地址到composer官方提交。
composer的官方仓库是 https://packagist.org/
我们打开,并且注册一个账号。然后点击右上角的submit。把地址填写进去即可。
到这里,我们的github仓库与packagist已经建立了关联,但是这个使用还是用不了的,因为我们还没有发布正式版本!
要在git上打标签,才认为我们发布了一个新的版本,packagist才会去拉取并且提供给别人安装。
git打标签需要运行以下命令1. git tag -a v1.0.1 -m "第一个版本"
2. git push origin v1.0.1
然后就在线上仓库打标签成功了,此时运行composer安装也正常了
在新的一个空白目录中运行
composer require yancoo.cn/test 是我们初始化填写的包名!
因为我们在开发composer包的目录,跟在实际项目中安装后的有一些不一样。 所以记得自己新建测试文件,载入composer的自动加载文件然后再测试哦
我们开发的包,只是项目所有包的其中之一,还有很多其他包,所以目录结构不一样