chomenko / presenter-factory-listener

此包最新版本(dev-master)没有提供许可证信息。

Nette 框架的 PresenterFactory 监听器

dev-master 2019-07-15 08:08 UTC

This package is auto-updated.

Last update: 2024-09-15 19:11:22 UTC


README

临时解决方案。

此扩展允许您扩展演示者工厂

要求

安装

composer require chomenko/presenter-factory-listener

配置

在 config.neon 中

extensions:
	events: Kdyby\Events\DI\EventsExtension
	presenterFactoryListener: Chomenko\PresenterFactoryListener\DI\PresenterFactoryListenerExtension

使用

事件

  • onGetPresenter
  • onFormatPresenterClass
  • onUnFormatPresenterClass
<?php
namespace App\Listener;

use Kdyby\Events\Subscriber;
use Chomenko\PresenterFactoryListener\EventArgsGetPresenter;
use Chomenko\PresenterFactoryListener\PresenterFactory as ExtendPresenter;

class PresenterFactory implements Subscriber
{
	/**
	 * @return array
	 */
	public function getSubscribedEvents()
	{
		return [
			ExtendPresenter::class . "::onGetPresenter" => "onGetPresenter",
		];
	}

	/**
	 * @param EventArgsGetPresenter $eventArgs
	 */
	public function onGetPresenter(EventArgsGetPresenter $eventArgs)
	{
		$presenter = $eventArgs->getName();
		$exp = explode(":", $presenter);
		if (isset($exp[0]) && $exp[0] == "Special") { //specialModule
			$eventArgs->setPresenter("special class name"); //special class
		}
	}
}