Composer是PHP中用来管理依赖关系的工具,我们可以在composer.json文件中声明我们需要的组件,composer就会帮我们安装这些组件。有了他,我们再也不用在自己的项目中拷贝大量的组件代码,也不用担心我们的组件库因为到处拷贝而出现组件的丢失或冗余,作为一个PHPer,Composer已经成为了一个必会的工具。
Composer不仅仅可以让我们轻松的使用大佬们给我们封装好的组件,我们也可以通过他来封装我们自己的组件,让我们的组件也可以通过他来管理,从而方便我们的开发。接下来,让我们一起来试着开发一个自己的基于注解的RBAC权限控制组件吧!
其实我们PHP在PHP8之前,是没有真正意义上的注解的,只有注释,也就是写在/* 和 */之间的字符,但是,我们可以通过PHP的反射来获取到这些注释字符串,从而解析里面的内容,实现我们的逻辑。
下面我们开始第一步,搭建一个组件骨架。
先创建一个目录my_rbac作为我们组件的根目录,然后我们进入到创建的目录中,在目录下创建src目录作为源代码目录,并且创建composer.json文件。
我们在composer.json文件中写入以下内容(记得把//后面的注释去掉哦):
{ "name": "cs/myrbac",//表示包的名称,由作者名称和项目名称组成,使用 / 分割 "description": "基于注解的RBAC权限控制",//描述 "type": "library",//表示包的类型,默认为库 library "license": "MIT",//表示包的许可证 "keywords": [ //表示一组用于搜索与筛选的与包相关的关键字 "annotaion", "RBAC" ], "authors": [//表示包的作者 { "name": "wekphp", "email": "wekyun@qq.com" } ], "minimum-stability": "dev",//稳定性过滤包的默认值,默认为stable "require": {//表示必须安装的依赖包列表,这些包必须满足条件,否则不会安装 "php": ">=7.2.0" }, "autoload": {//表示PHP 自动加载的映射 "psr-4": {//推荐使用 PSR-4 规范 "AnnotationRBAC": "src"//注意这里和命名空间相对应 //路径的前半部分代表命名空间 后半部分代表路径 } } }
然后我们在src目录中新建一个AnnotationParse.php类,先随便写一个测试方法吧!
<?php // 记得写命名空间,要和composer.json文件中的PSR-4中的命名空间一致哦 namespace AnnotationRBAC; /** * 注解解析类 * Class AnnotationParse * @package AnnotationRBAC */ class AnnotationParse { public function index() { echo 'AnnotationParse@index'; } }
接下来我们在根目录路径下执行composer install,成功后会在根目录生成vendor目录和composer.lock文件。
我们来创建一个入口文件测试一下能不能运行吧,根目录新建index.php文件,写入以下代码:
<?php // 包含自动加载文件 require_once './vendor/autoload.php'; // 实例化类并调用测试方法 $parse = new AnnotationRBACAnnotationParse(); $parse->index();
最后让我们在根目录下执行 php index.php,如果能正确输出测试方法中的字符串,我们的骨架就搭建好了!
下一篇文章,我们将实现AnnotationParse.php类中的功能!