flame / modules
Nette 模块增强版
v2.3.0
2014-09-24 08:05 UTC
Requires
- php: >=5.3.2
- nette/nette: ~2.2
Requires (Dev)
- flame/tester: dev-master
- janmarek/mockista: dev-master
This package is not auto-updated.
Last update: 2024-09-23 15:05:14 UTC
README
简单注册和管理 Nette 模块及扩展。
在 项目主页 了解更多。
##特性
###简单配置 ####config.neon 在 config.neon 中注册扩展 Flame\Modules\DI\ModulesExtension
extensions: - Flame\Modules\DI\ModulesExtension
####添加您的扩展 简单注册扩展
extensions: - App\AppModule\DI\AppExtension rest: Flame\Rest\DI\RestExtension events: Kdyby\Events\DI\EventsExtension # ... - Flame\Modules\DI\ModulesExtension # Do not forget to add it!
就这些,没有更多!简单!
提示! 确保 ModulesExtension 是作为最后一个 Nette 扩展进行注册。这将避免很多误解。
##示例 ###IRouterProvider
class AppExtension extends CompilerExtension implements Flame\Modules\Providers\IRouterProvider { /** * Returns array of ServiceDefinition, * that will be appended to setup of router service * * @example https://github.com/nette/sandbox/blob/master/app/router/RouterFactory.php - createRouter() * @return \Nette\Application\IRouter */ public function getRoutesDefinition() { return new Nette\Application\Routers\Route('<module>/<presenter>/<action>[/<id>]', array( 'module' => 'App', 'Presenter' => 'Homepage', 'action' => 'default', 'id' => null ); } }
###全新! 您可以将您独立的服务作为路由工厂添加
class AppExtension extends CompilerExtension { public function loadConfiguration() { $builder = $this->getContainerBuilder(); $builder->addDefinition('service.routerFactory') ->setClass('Modules\RouterFactory') // YOUR ROUTER FACTORY CLASS ->addTag(Flame\Modules\ModulesExtension::TAG_ROUTER); // DONT FORGET TO ADD THE TAG! } }
class AppExtension extends CompilerExtension implements Flame\Modules\Providers\IPresenterMappingProvider { /** * Returns array of ClassNameMask => PresenterNameMask * * @example return array('*' => 'Booking\*Module\Presenters\*Presenter'); * @return array */ public function getPresenterMapping() { return array( '*' => 'App\*Module\Presenters\*Presenter' ); } }
class AppExtension extends CompilerExtension implements Flame\Modules\Providers\IParametersProvider { /** * Return array of parameters, * which you want to add into DIC * * @example return array('images' => 'path/to/folder/with/images'); * @return array */ public function getParameters() { return array( 'images' => '%wwwDir%/path/to/folder/with/images', 'consoleMode' => true, 'appDir' => 'aa' ); } }
class HelperExtension extends CompilerExtension implements Flame\Modules\Providers\ITemplateHelpersProvider { /** * Return list of helpers definitions or providers * * @return array */ public function getHelpersConfiguration() { return array( 'App\HelperModule\Template\HelperProvider' ); } }
class MacroExtension extends CompilerExtension implements Flame\Modules\Providers\ILatteMacrosProvider { /** * Get array of latte macros classes * * @return array */ public function getLatteMacros() { return array( 'App\MacroModule\Template\MacroInstaller' ); } }
class ErrorExtension extends CompilerExtension implements Flame\Modules\Providers\IErrorPresenterProvider { /** * Return name of error presenter * * @return string */ public function getErrorPresenterName() { return 'Error:CustomError'; } }
以及更多:ITracyBarPanelsProvider, ITracyPanelsProvider
###接下来做什么? 访问 项目主页 了解更多详情。
在 博客 [CZE] 上了解更多关于此包的信息。
基于 SOLID 模块化概念。