有时候一些功能可能需要封装成扩展方便与项目组的使用和后续的迭代,下面就自己实践的过程进行讲解一下。
首先找到yii2框架的vendor文件夹,创建自己的扩展文件夹,下面是我做的一个demo:
MyPake.php
<?php namespace My\Pake; /** * Created by PhpStorm. * User: gaoxuxu * Date: 2018/5/3 * Time: 16:31 */ class MyPake { public function say() { return 'my first extension'; } }
composer.json:
{ "name": "yii/my-pake", "authors": [ { "name": "394703554", "email": "[email protected]" } ], "require": { "php": ">=5.4.0" }, "autoload": { "psr-4": { "My\\Pake\\": "src/" } } }
如何在本地进行安装呢?
找到最外层的composer.json
打开之后添加:
添加完毕之后:
运行:composer dumpautoload
找到composer文件夹下面的autoload_psr4.php文件就能找到生成的内容了
路径不对,记得增加一下 $vendorDir . '/my-pake/src'
找到autoload_static.php也生成了对应的字母索引
路径特需要修改一下
改成
__DIR__ . '/..' . '/my-pake/src'
然后调用一下:
$pake = new MyPake(); VarDumper::dump($pake->say());
OK,本地开发yii2框架的扩展就是这么简单,复杂的同理~,只是业务逻辑复杂,原理是一样的。
下一节讲解如何把自己的扩展发布到公共类库,给予别人下载使用 ^_^。