flame/modules

Nette 模块增强版

v2.3.0 2014-09-24 08:05 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:05:14 UTC


README

#Nette 模块增强版 构建状态

简单注册和管理 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!
    	}
}

###IPresenterMappingProvider

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'
    		);
    	}
}

###IParametersProvider

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'
		);
	}

}

###ITemplateHelpersProvider

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'
		);
	}
}

###ILatteMacrosProvider

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'
		);
	}
}

###IErrorPresenterProvider

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 模块化概念