php 和设计模式 - 命令行模式
发表于|更新于|设计模式
用过 laravel 框架的应该都知道,其脚本模块非常强大,这些脚本,也就是命令行模式。
说到命令行,就不得步提一下 cli 和 cgi 的区别,在 nginx 中,php 并不是直接执行的,而是通过 cgi 调用 php 并获取执行结果。
而 cli 就是命令行接口,主要用于 shell 脚本的开发。
1 | php command.php |
不多说了,回头再专门看一下这方面的东西。
文章作者: m-finder
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 M-finder!
相关推荐
2021-03-21
php 和设计模式 - 适配器例模式
适配器模式主要用于将一个类的接口转换为客户端所期望的另一个接口,也就是处理接口的兼容问题。 比如说数据库操作,有 mysql,sqllite,mongodb 等,缓存操作有 redis,memcache,file 等,都可以通过适配器模式将其统一成一致。 查阅资料的过程中,看到一个很生动的例子:🌰 某公司生产一批动物形玩具,可以张嘴闭嘴,实现如下: 1234567891011121314151617181920interface Toy{ public function openMouse(); public function closeMouse();}class Dog implements Toy{ public function openMouse() { echo 'dog open mouse', PHP_EOL; } public function closeMouse() { echo 'dog...
2021-03-21
php 和设计模式 - 桥接模式
桥接模式也是一个典型的单一职责模式。 在组件设计过程中,如果职责划分不够清晰,当父类发生变更,子类也需要跟着变动,要么违背开闭原则,要么导致子类数量膨胀。桥接模式,就是为了解决这个问题。 桥接模式的做法是,使抽象和实现完全分离,使其能够独立变化。或者也可以直白一点,通过组合/聚合的方式避免继承滥用。 举个🌰: 123456789101112131415161718192021222324252627282930313233343536abstract class Shape{ protected Color $color; public function setColor(Color $color) { $this->color = $color; } public abstract function draw();}class Circle extends Shape{ public function draw() { ...
2021-03-21
php 和设计模式 - 生成器模式
生成器模式也叫建造者模式,主要用于将一个复杂对象的构造与它的表示分离。该模式允许你使用相同的代码生成不同类型和形式的对象。 什么是复杂对象呢?举个🌰,人类,都有个脑袋,有个身体,又有两条胳膊腿儿,那么,我们就可以把人看作是一个复杂对象。 那么,对于生成器模式来说,我们要把人类对象的创建与它的实例表示进行分离。 class Human { public function setHead(string $head) { echo 'head:', $head, PHP_EOL; } public function setBody(string $body) { echo 'body:', $body, PHP_EOL; } public function setArms(string $leftArm, string $rightArm) { echo 'left...
2021-03-21
php 和设计模式 - 设计模式分类
一般来说,设计模式分三个大类,分别是创建型模式、结构型模式、行为型模式。但是随着技术的不断发展,也有一些新型的模式出现。 创建型模式提供创建对象的机制,增加已有代码的灵活性和可复用性。 传统的创建型共有 5 种模式,分别是工厂模式、抽象工厂模式、生成器、原型和单例模式。 结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。 传统的结构型共有 7 种模式,分别是适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 新型的有依赖注入模式、注册模式和流接口模式。 行为型模式负责对象间的高效沟通和职责委派。 这个最多,共 11 种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式。 其他模式委托模式、服务定位器模式、资源库模式、实体属性值模式。 虽然现在还不知道这些模式都是用来做什么的,但是没关系,一个一个的研究吧。干巴得!(╯‵□′)╯︵┻━┻
2021-03-21
php 和设计模式 - 组合模式
将对象组合成树状层次结构以表示部分-整体的层次结构,使用户对单个对象和组合对象的使用具有一致性。 两个关键词,树状,部分-整体。 举个🌰: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667interface Component{ public function render();}class Composite implements Component{ protected array $composites = []; public function add(Component $component) { $this->composites[] = $component; } public function remove(Component $component) ...
2021-03-21
php 和设计模式 - 责任链模式
建立一个对象链来按指定顺序处理调用。如果其中一个对象无法处理命令,它会委托这个调用给它的下一个对象来进行处理,以此类推。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546abstract class Handler{ protected ?Handler $successor; public function __construct(Handler $handler = null) { $this->successor = $handler; } abstract public function handle($request);}class HttpInNumeric extends Handler{ public function __construct(Handler $successor = null) { ...
评论