machy8/smart-controller

在Symfony AbstractController之上的小型抽象,具有实用的功能。

这个包的官方仓库似乎已经消失,因此该包已被冻结。

v1.1.0 2019-04-11 20:00 UTC

This package is auto-updated.

Last update: 2024-01-13 03:52:14 UTC


README

Build Status

智能控制器

基于文章Symfony 4: 创建智能控制器。摘要

  • 在渲染方法之前 - 允许您设置始终需要的参数
  • 模板参数 - 可以轻松地从多个地方设置
  • 有用的方法 - getRequest(), getRootDirectory(), getTemplateParameter()

安装

composer require machy8/smart-controller

示例

Symfony原始的lucky控制器示例

class LuckyController extends AbstractController
{

	/**
	 * @Route("/lucky/number")
	 */
	public function number(): Response
	{
		return $this->render('lucky/number.twig', [
			'number' => random_int(0, 100),
		]);
	}


	/**
	 * @Route("/unlucky/number")
	 */
	public function unluckyNumber(): Response
	{
		return $this->render('lucky/number.twig', [
			'number' => random_int(0, 100),
		]);
	}

}

现在有了智能控制器

class LuckyController extends SmartController
{

    public function beforeRender(): void
    {
        $this->setTemplateParameters([
            'number' => random_int(0, 100)
        ]);
    }

    /**
     * @Route("/lucky/number")
     */
    public function renderLuckyNumber(): Response
    {
        return $this->renderTemplate('lucky/number.twig');
    }

    /**
     * @Route("/unlucky/number")
     */
    public function renderUnluckyNumber(): Response
    {
        return $this->renderTemplate('lucky/number.twig');
    }

}