Add Twig\FlashMessagesExtension class
Adds the flash() Twig function that return all flash messages. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
5f4fe6c50d
commit
7e23436533
@ -7,6 +7,7 @@ namespace PhpMyAdmin;
|
||||
use PhpMyAdmin\Twig\AssetExtension;
|
||||
use PhpMyAdmin\Twig\CoreExtension;
|
||||
use PhpMyAdmin\Twig\Extensions\Node\TransNode;
|
||||
use PhpMyAdmin\Twig\FlashMessagesExtension;
|
||||
use PhpMyAdmin\Twig\I18nExtension;
|
||||
use PhpMyAdmin\Twig\MessageExtension;
|
||||
use PhpMyAdmin\Twig\PluginsExtension;
|
||||
@ -25,6 +26,7 @@ use Twig\Error\RuntimeError;
|
||||
use Twig\Error\SyntaxError;
|
||||
use Twig\Extension\DebugExtension;
|
||||
use Twig\Loader\FilesystemLoader;
|
||||
use Twig\RuntimeLoader\ContainerRuntimeLoader;
|
||||
use Twig\TemplateWrapper;
|
||||
|
||||
use function sprintf;
|
||||
@ -61,7 +63,7 @@ class Template
|
||||
|
||||
public static function getTwigEnvironment(?string $cacheDir): Environment
|
||||
{
|
||||
global $cfg;
|
||||
global $cfg, $containerBuilder;
|
||||
|
||||
/* Twig expects false when cache is not configured */
|
||||
if ($cacheDir === null) {
|
||||
@ -74,6 +76,8 @@ class Template
|
||||
'cache' => $cacheDir,
|
||||
]);
|
||||
|
||||
$twig->addRuntimeLoader(new ContainerRuntimeLoader($containerBuilder));
|
||||
|
||||
if ($cfg['environment'] === 'development') {
|
||||
$twig->enableDebug();
|
||||
$twig->addExtension(new DebugExtension());
|
||||
@ -89,6 +93,7 @@ class Template
|
||||
|
||||
$twig->addExtension(new AssetExtension());
|
||||
$twig->addExtension(new CoreExtension());
|
||||
$twig->addExtension(new FlashMessagesExtension());
|
||||
$twig->addExtension(new I18nExtension());
|
||||
$twig->addExtension(new MessageExtension());
|
||||
$twig->addExtension(new PluginsExtension());
|
||||
|
||||
18
libraries/classes/Twig/FlashMessagesExtension.php
Normal file
18
libraries/classes/Twig/FlashMessagesExtension.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Twig;
|
||||
|
||||
use PhpMyAdmin\FlashMessages;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFunction;
|
||||
|
||||
final class FlashMessagesExtension extends AbstractExtension
|
||||
{
|
||||
/** @return TwigFunction[] */
|
||||
public function getFunctions(): array
|
||||
{
|
||||
return [new TwigFunction('flash', [FlashMessages::class, 'getMessages'])];
|
||||
}
|
||||
}
|
||||
@ -84,6 +84,9 @@ return [
|
||||
'expression_language' => [
|
||||
'class' => Symfony\Component\ExpressionLanguage\ExpressionLanguage::class,
|
||||
],
|
||||
'flash' => [
|
||||
'class' => PhpMyAdmin\FlashMessages::class,
|
||||
],
|
||||
'http_request' => [
|
||||
'class' => PhpMyAdmin\Utils\HttpRequest::class,
|
||||
],
|
||||
@ -214,7 +217,8 @@ return [
|
||||
'user_preferences' => [
|
||||
'class' => PhpMyAdmin\UserPreferences::class,
|
||||
],
|
||||
PhpMyAdmin\Response::class => 'response',
|
||||
PhpMyAdmin\DatabaseInterface::class => 'dbi',
|
||||
PhpMyAdmin\FlashMessages::class => 'flash',
|
||||
PhpMyAdmin\Response::class => 'response',
|
||||
],
|
||||
];
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
use PhpMyAdmin\Command\CacheWarmupCommand;
|
||||
use PhpMyAdmin\Command\SetVersionCommand;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
@ -24,6 +25,7 @@ if (! class_exists(Application::class)) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$containerBuilder = Core::getContainerBuilder();
|
||||
$cfg['environment'] = 'production';
|
||||
$config = new Config(CONFIG_FILE);
|
||||
$config->set('environment', $cfg['environment']);
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\MoTranslator\Loader;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
@ -47,6 +48,8 @@ require_once ROOT_PATH . 'libraries/vendor_config.php';
|
||||
require_once AUTOLOAD_FILE;
|
||||
Loader::loadFunctions();
|
||||
|
||||
$GLOBALS['containerBuilder'] = Core::getContainerBuilder();
|
||||
|
||||
$GLOBALS['config'] = new Config();
|
||||
$GLOBALS['config']->set('environment', 'development');
|
||||
$GLOBALS['cfg']['environment'] = 'development';
|
||||
|
||||
@ -30,6 +30,8 @@ class TemplateTest extends AbstractTestCase
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
$this->loadContainerBuilder();
|
||||
|
||||
$cfg['environment'] = 'production';
|
||||
$twig = Template::getTwigEnvironment(null);
|
||||
$this->assertFalse($twig->isDebug());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user