zkrati/class-factory
Composer 安装命令:
composer require zkrati/class-factory
包简介
Simple library to manage class instances. It handles dependencies and supports lazy instantiating.
README 文档
README
Simple library to manage class instances. It handles dependencies and supports lazy instantiating.
- create instances of given classes for you
- ensures that there is only single instance of one class
- handles dependencies of the class
Version
0.1
Basic usage
// create ClassFactory $factory = new Zkrati\ClassManagement\ClassFactory(); // add class to ClassFactory, where first argument is a class name and second argument is an array of dependencies $factory->addClass("Example\ClassName", array("First\Dependency", "Second\One"); // get instance of the class $factory->getInstance("Example\ClassName");
simple right? You don´t need to bother with instantiating dependencies what so ever. ClassFactory handles that for you. Even dependencies can have it´s own dependencies. No problem for ClassFactory!
If you make a complex project it would be uncomfortable adding classes one by one.
// create array like this one. Manualy in the code or parse from config file. array(3) { ["Url\UrlTools"]=> array(1) { [0]=> string(22) "Nette\Database\Context" } ["Nette\Database\Context"]=> array(2) { [0]=> string(25) "Nette\Database\Connection" [1]=> string(24) "Nette\Database\Structure" } ["Nette\Database\Structure"]=> array(2) { [0]=> string(25) "Nette\Database\Connection" [1]=> string(34) "Nette\Caching\Storages\FileStorage" } } // give this group of classes to ClassFactory $factory->addMultiple(array_of_classes);
If you need to create your own instance of some class for some reason, you can pass the created instance
$myClass = new Example\ClassName(); // add created instance to ClassFactory $factory->addInstance($myClass); // and than you cen get it $factory->getInstance("Example\ClassName");
Exceptions
If you want ClassFactory to give you an instance of a a class you didn´t tell ClassFactory about, it will throw UnknownClassnameException. So it is a good idea to catch it.
try{ // get instance of unknown class $factory->getInstance("Unknown\ClassName"); } catch(UnknownClassnameException $e) { $e->getMessage(); }
License
MIT
统计信息
- 总下载量: 30
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-08-11