evo/patterns
Composer 安装命令:
composer require evo/patterns
包简介
Common programing patterns
关键字:
README 文档
README
Common programing patterns for evo
- Singleton (trait and interface)
- Multiton (trait and interface)
If you don't know what a Singlton is I suggest reading about it
https://en.wikipedia.org/wiki/Singleton_pattern
Singleton useage
use evo\pattern\singleton\SingletonTrait;
use evo\pattern\singleton\SingletonInterface;
Class Foo implements SingletonInterface{
use Singleton;
protected function init(){
//stuff to do on __construct
}
}
Then you can call your class like this (each additional call will return the same instance of the class)
$Foo = Foo:getInstance();
Multiton usage
use evo\pattern\singleton\MultitonTrait;
use evo\pattern\singleton\MultitonInterface;
Class Foo implements MultitonInterface{
use Multiton;
protected function init(){
//stuff to do on __construct
}
}
Then you can call your class like this
$Foo = Foo:getInstance();
The diffrence between them is the Multiton acts more like a container for Singlton instances. So you can call the getInstance method multiple times with diffrent aliases and get multiple copies of the class, each a singleton in it's own right. Becareful using Static proprites on multitons as they can be a bit tricky.
//this will produce two singleton instances of the class
$Foo1 = Foo:getInstance('instance1');
$Foo2 = Foo:getInstance('instance2');
Install via composer
{
"require" : {
"evo/patterns" : "~1.0"
}
}
I plan to add a few more to this, as needed.
统计信息
- 总下载量: 96
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0
- 更新时间: 2018-04-01