Commit 88f9020a authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Nouveau collecteur dans la barre LaminasDevTools : messages produits par...

Nouveau collecteur dans la barre LaminasDevTools : messages produits par \UnicaenApp\Service\MessageCollector.
parent a3b1cad5
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
CHANGELOG
=========

5.1.6
-----
- Nouveau collecteur dans la barre LaminasDevTools : messages produits par \UnicaenApp\Service\MessageCollector.   

5.1.5
-----
- Nouvel élément de formulaire SearchAndSelect2 (basé sur le widget js Select2).
+20 −1
Original line number Diff line number Diff line
@@ -2,11 +2,14 @@

namespace UnicaenApp;

use Laminas\Mvc\Console\Router\Simple;
use Laminas\ServiceManager\Factory\InvokableFactory;
use UnicaenApp\Controller\CacheControllerFactory;
use UnicaenApp\Controller\ConsoleController;
use UnicaenApp\Controller\ConsoleControllerFactory;
use UnicaenApp\Controller\InstadiaControllerFactory;
use UnicaenApp\DeveloperTools\MessageCollectorService;
use UnicaenApp\DeveloperTools\MessageCollectorServiceFactory;
use UnicaenApp\Form\Element\SearchAndSelect2;
use UnicaenApp\Form\View\Helper\FormControlGroup;
use UnicaenApp\Form\View\Helper\FormControlGroupFactory;
@@ -49,7 +52,6 @@ use UnicaenApp\View\Helper\Upload\UploaderHelper;
use UnicaenApp\View\Helper\Upload\UploaderHelperFactory;
use UnicaenApp\View\Helper\UserProfileSelect;
use UnicaenApp\View\Helper\UserProfileSelectFactory;
use Laminas\Mvc\Console\Router\Simple;

return [
    'router'          => [
@@ -341,6 +343,8 @@ return [
            'instadia'              => InstadiaServiceFactory::class,
            HostLocalization::class => HostLocalizationFactory::class,
            RedirectResponse::class => RedirectResponseFactory::class,

            MessageCollectorService::class => MessageCollectorServiceFactory::class,
        ],
        'shared'             => [
            'MouchardListenerErrorHandler' => false,
@@ -525,6 +529,7 @@ return [
            //            'unicaen-app/application/plan'                     => __DIR__ . '/../view/application/plan.phtml',
            //            'unicaen-app/application/mentions-legales'         => __DIR__ . '/../view/application/mentions-legales.phtml',
            //            'unicaen-app/application/informatique-et-libertes' => __DIR__ . '/../view/application/informatique-et-libertes.phtml',
            'laminas-developer-tools/toolbar/messages' => __DIR__ . '/../view/laminas-developer-tools/toolbar/messages.phtml',
        ],
        // TemplatePathStack configuration
        'template_path_stack'      => [
@@ -681,4 +686,18 @@ return [
            ],
        ],
    ],

    // intégration à la Laminas Developer Toolbar
    'laminas-developer-tools' => [
        'profiler' => [
            'collectors' => [
                DeveloperTools\MessageCollectorService::class => DeveloperTools\MessageCollectorService::class,
            ],
        ],
        'toolbar'  => [
            'entries' => [
                DeveloperTools\MessageCollectorService::class => 'laminas-developer-tools/toolbar/messages',
            ],
        ],
    ],
];
+43 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenApp\DeveloperTools;

use Laminas\DeveloperTools\Collector\CollectorInterface;
use Laminas\Mvc\MvcEvent;
use UnicaenApp\Service\MessageCollectorAwareTrait;

class MessageCollectorService implements CollectorInterface
{
    use MessageCollectorAwareTrait;

    const NAME = 'messages';
    const PRIORITY = 200;

    public function getMessages(): array
    {
        return $this->messageCollector->getMessages();
    }

    /**
     * {@inheritDoc}
     */
    public function getName(): string
    {
        return self::NAME;
    }

    /**
     * {@inheritDoc}
     */
    public function getPriority(): int
    {
        return static::PRIORITY;
    }

    /**
     * {@inheritDoc}
     */
    public function collect(MvcEvent $mvcEvent)
    {
    }
}
+22 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenApp\DeveloperTools;

use Laminas\ServiceManager\Factory\FactoryInterface;
use Psr\Container\ContainerInterface;
use UnicaenApp\Service\MessageCollector;

class MessageCollectorServiceFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, $options = null): MessageCollectorService
    {
        $service = new MessageCollectorService();

        /** @var MessageCollector $messageCollector */
        $messageCollector = $container->get('MessageCollector');
        $service->setServiceMessageCollector($messageCollector);

        return $service;
    }

}
 No newline at end of file
+46 −0
Original line number Diff line number Diff line
<?php
/**
 * @var \Laminas\DeveloperTools\Report $report
 * @var \UnicaenApp\DeveloperTools\MessageCollectorService $collector
 */
$collector = $report->getCollector('messages');
$messages = $collector->getMessages();
?>
<div class="laminas-toolbar-entry">
    <div class="laminas-toolbar-preview">
        <span class="laminas-toolbar-info">
               <span class="laminas-toolbar-extra-info">
                    <img style="padding-bottom: 4px;"
                         src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMJJREFUeNqUUsEKhCAUbGVBISILomsI/f8/9CVCIJUI26EIA9mhLktblnMQxJnHzDxfTdNEISBRIN4nMwgpiiLLMkqplHIcR5+AMSaEcM4NwzDPs7UWelzPBXirqmqaprZtf0mXGTjn0HjYR0GSJMYYD/toqe97mA6otSxLuArbQ57niPFUoLWO4xjNPhJg8LIsXdfVdZ2mKdngC72Xg9zrumIbOFGAUgrru/kanw1sw3/FJ4KdBHuH2Te/9Wp9XwEGAJDAZMbwps+bAAAAAElFTkSuQmCC"/>
                    Message
            </span>
        </span>
    </div>
    <div class="laminas-toolbar-detail">
        <div class="laminas-toolbar-info">
            <div class="laminas-detail-value">
                <?php if (!empty($messages)): ?>
                <dl>
                    <?php foreach ($messages as $severity => $item): ?>
                        <dt>
                            <span title="severity"><?php echo $severity ?></span>
                        </dt>
                        <dd>
                            <ul>
                                <?php foreach ((array)$item as $priority => $message): ?>
                                    <li>
                                        <span title="priority"><?php echo $priority ?></span> =>
                                        <span title="<?php echo $message ?>"><?php echo $message ?></span>
                                    </li>
                                <?php endforeach; ?>
                            </ul>
                        </dd>
                    <?php endforeach; ?>
                </dl>
                <?php else: ?>
                    Aucun message.
                <?php endif ?>
            </div>
        </div>
    </div>
</div>
 No newline at end of file