- 执行流程
1. phlcon.php是工具 phalcon.sh和bat分别是Unix和win下的安装、其实就是做了一些环境监测、>然后执行phalcon.php
2. phalcon.php做了2件事 1)把command这种类型的事件用CommandsListener这个类来处理
2)CommandsListener做了命令执行前的监测、收到的参数是不是请求帮助、这个命令是不是可以在项目外部执行
3. 所有phalcon-devtools可执行的命令是从$commandsToEnable数组得到、我们可以修改、扩展
4. 最后调用对应command的run方法来执行
5. 对应command的可用选项在 \Command\Buildin下对应的php文件run方法实现、可以修改扩展、run方法会调用对应的build方法来具体执行和实现
感觉整个架构很灵活、很易于扩展
拿controller来说吧、
- 怎么使用
创建一个控制器、我们可以用controller或者是create-controler这个是哪里实现的呢 ?
\Command\Buildin\Controller getCommands方法、比如我们需要更简洁的命令、可以在给它加上一
个 return array('controller', 'create-controller', 'c');
这样在创建controller的时候就可以简单的使用 pc c cName来完成了(我把phalcon.php映射成了pc)
getOption方法会过滤参数、比如、我们不希望用户输入哪个参数、可以在这里显式过滤、假如,不
希望name这个选项被使用、可以在调用getOption这个方法的时候传入第二个参数
run方法的getoption决定从输入的什么参数得到创建初始化的一些值、比如 默认base-controller>指定继承自哪个controller、我们可以自己修改为 bc
namespace指定命名空间、我们可以修改为 ns 。。这样、输入方便了、但是带来的一个问题就是可
读性不太好
根据个人习惯吧
eg phalcon create-controller --name=Test --namespace=NewHouse --base-class=MvcController --outPut=Newhouse 可以很轻易的读懂
pc c --name=Test --ns=NewHouse --bc=MvcController -o=test -d=store -f 这样估计别人会看>的比较郁闷~
若是要改的话、记得getPossibleParams方法里的对应改掉
namespace=s 后边的s是代表的namespace的可用数据类型 s代表字符串
这个工具封装是非常灵活的、我们可以按照自己的需要去扩展或者增加实现
Color类封装了一些通用的样式颜色展示
也可以有自己的配置文件、放到config文件夹下、默认查找的文件夹是app、apps等文件夹、可以解
析ini、inc、yaml等格式