PSR 2 compliance

This commit is contained in:
Simon Vieille 2021-05-12 11:56:48 +02:00
parent cf6bb84bfb
commit 775d4562bd
19 changed files with 62 additions and 72 deletions

View File

@ -3,8 +3,8 @@
namespace App\Core\Controller\Admin;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\Response;
abstract class AdminController extends AbstractController
{

View File

@ -18,10 +18,10 @@ use Symfony\Component\HttpFoundation\Session\Session;
*/
abstract class CrudController extends AdminController
{
abstract protected function getConfiguration(): CrudConfiguration;
protected array $filters = [];
abstract protected function getConfiguration(): CrudConfiguration;
protected function doIndex(int $page = 1, RepositoryQuery $query, Request $request, Session $session): Response
{
$configuration = $this->getConfiguration();
@ -37,7 +37,7 @@ abstract class CrudController extends AdminController
'configuration' => $configuration,
'pager' => $pager,
'filters' => [
'show' => $configuration->getForm('filter') !== null,
'show' => null !== $configuration->getForm('filter'),
'isEmpty' => empty($this->filters),
],
]);

View File

@ -6,6 +6,7 @@ use App\Core\Event\Account\PasswordRequestEvent;
use App\Core\Manager\EntityManager;
use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
@ -14,7 +15,6 @@ use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Csrf\TokenGenerator\TokenGeneratorInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use ZxcvbnPhp\Zxcvbn;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class AuthController extends AbstractController
{

View File

@ -5,7 +5,6 @@ namespace App\Core\Controller\Setting;
use App\Core\Controller\Admin\AdminController;
use App\Core\Entity\Setting as Entity;
use App\Core\Event\Setting\SettingEvent;
use App\Core\Factory\SettingFactory as EntityFactory;
use App\Core\Manager\EntityManager;
use App\Core\Repository\SettingRepositoryQuery as RepositoryQuery;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@ -47,8 +46,7 @@ class SettingAdminController extends AdminController
EntityManager $entityManager,
EventDispatcherInterface $eventDispatcher,
Request $request
): Response
{
): Response {
$builder = $this->createFormBuilder($entity);
$eventDispatcher->dispatch(new SettingEvent([

View File

@ -24,7 +24,8 @@ class NavigationAdminController extends AdminController
{
$pager = $query
->orderBy('.label, .domain')
->paginate($page);
->paginate($page)
;
return $this->render('@Core/site/navigation_admin/index.html.twig', [
'pager' => $pager,

View File

@ -5,17 +5,15 @@ namespace App\Core\Controller\Site;
use App\Core\Controller\Admin\AdminController;
use App\Core\Entity\Site\Page\Page as Entity;
use App\Core\Factory\Site\Page\PageFactory as EntityFactory;
use App\Core\Form\Site\Page\PageType as EntityType;
use App\Core\Form\Site\Page\Filter\PageFilterType as FilterType;
use App\Core\Form\Site\Page\PageType as EntityType;
use App\Core\Manager\EntityManager;
use App\Core\Page\FooPage;
use App\Core\Page\SimplePage;
use App\Core\Repository\Site\Page\PageRepositoryQuery as RepositoryQuery;
use App\Core\Site\PageLocator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/admin/site/page")
@ -31,7 +29,8 @@ class PageAdminController extends AdminController
$pager = $query
->useFilters($this->filters)
->paginate($page);
->paginate($page)
;
return $this->render('@Core/site/page_admin/index.html.twig', [
'pager' => $pager,
@ -104,6 +103,11 @@ class PageAdminController extends AdminController
]);
}
public function getSection(): string
{
return 'site_page';
}
protected function updateFilters(Request $request, Session $session)
{
if ($request->query->has('page_filter')) {
@ -129,9 +133,4 @@ class PageAdminController extends AdminController
$session->set('page_filter', $filters);
}
}
public function getSection(): string
{
return 'site_page';
}
}

View File

@ -5,7 +5,6 @@ namespace App\Core\Controller\Site;
use App\Core\Site\SiteRequest;
use App\Core\Site\SiteStore;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class PageController extends AbstractController

View File

@ -56,7 +56,8 @@ class TreeAdminController extends AdminController
): Response {
$navigations = $navigationQuery->create()
->orderBy('.label, .domain')
->find();
->find()
;
$session->set('site_tree_last_navigation', $navigation->getId());

View File

@ -13,7 +13,6 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
/**
* @Route("/admin/user")

View File

@ -12,7 +12,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
*/
abstract class EntityManagerEventSubscriber implements EventSubscriberInterface
{
static protected int $priority = 0;
protected static int $priority = 0;
public static function getSubscribedEvents()
{

View File

@ -2,6 +2,7 @@
namespace App\Core\EventSuscriber\Site;
use App\Core\Cache\SymfonyCacheManager;
use App\Core\Entity\EntityInterface;
use App\Core\Entity\Site\Menu;
use App\Core\Event\EntityManager\EntityManagerEvent;
@ -10,7 +11,6 @@ use App\Core\Factory\Site\NodeFactory;
use App\Core\Manager\EntityManager;
use App\Core\Repository\Site\NodeRepository;
use App\Core\Slugify\CodeSlugify;
use App\Core\Cache\SymfonyCacheManager;
/**
* class MenuEventSubscriber.

View File

@ -2,15 +2,14 @@
namespace App\Core\EventSuscriber\Site;
use App\Core\Cache\SymfonyCacheManager;
use App\Core\Entity\EntityInterface;
use App\Core\Entity\Site\Menu;
use App\Core\Entity\Site\Navigation;
use App\Core\Entity\Site\Node;
use App\Core\Event\EntityManager\EntityManagerEvent;
use App\Core\EventSuscriber\EntityManagerEventSubscriber;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpKernel\KernelInterface;
use App\Core\Cache\SymfonyCacheManager;
/**
* class SiteEventSubscriber.

View File

@ -7,8 +7,8 @@ use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
class NavigationType extends AbstractType
{

View File

@ -2,18 +2,13 @@
namespace App\Core\Form\Site\Page\Filter;
use App\Core\Entity\Site\Page\Page;
use App\Core\Entity\Site\Navigation;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Image;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use App\Core\Entity\Site\Navigation;
use Doctrine\ORM\EntityRepository;
class PageFilterType extends AbstractType
{

View File

@ -74,6 +74,27 @@ abstract class RepositoryQuery
return $this->repository;
}
public function useFilters(array $filters)
{
foreach ($filters as $name => $value) {
if (null === $value) {
continue;
}
if (is_int($value) || is_bool($value)) {
$this->andWhere('.'.$name.' = :'.$name);
$this->setParameter(':'.$name, $value);
} elseif (is_string($value)) {
$this->andWhere('.'.$name.' LIKE :'.$name);
$this->setParameter(':'.$name, '%'.$value.'%');
} else {
$this->filterHandler($name, $value);
}
}
return $this;
}
protected function populateDqlId(&$data)
{
if (is_string($data)) {
@ -98,25 +119,4 @@ abstract class RepositoryQuery
protected function filterHandler(string $name, $value)
{
}
public function useFilters(array $filters)
{
foreach ($filters as $name => $value) {
if (null === $value) {
continue;
}
if (is_int($value) || is_bool($value)) {
$this->andWhere('.'.$name.' = :'.$name);
$this->setParameter(':'.$name, $value);
} elseif (is_string($value)) {
$this->andWhere('.'.$name.' LIKE :'.$name);
$this->setParameter(':'.$name, '%'.$value.'%');
} else {
$this->filterHandler($name, $value);
}
}
return $this;
}
}

View File

@ -2,9 +2,9 @@
namespace App\Core\Repository\Site\Page;
use App\Core\Entity\Site\Navigation;
use App\Core\Repository\RepositoryQuery;
use Knp\Component\Pager\PaginatorInterface;
use App\Core\Entity\Site\Navigation;
/**
* class PageRepositoryQuery.
@ -18,15 +18,6 @@ class PageRepositoryQuery extends RepositoryQuery
parent::__construct($repository, 'p', $paginator);
}
protected function filterHandler(string $name, $value)
{
if ($name === 'navigation') {
return $this->filterByNavigation($value);
} else {
return parent::filterHandler($name, $value);
}
}
public function filterByNavigation(Navigation $navigation)
{
return $this
@ -34,7 +25,8 @@ class PageRepositoryQuery extends RepositoryQuery
->leftJoin('node.menu', 'menu')
->leftJoin('menu.navigation', 'navigation')
->where('navigation.id = :navigationId')
->setParameter(':navigationId', $navigation->getId());
->setParameter(':navigationId', $navigation->getId())
;
}
public function filterById($id)
@ -46,4 +38,13 @@ class PageRepositoryQuery extends RepositoryQuery
return $this;
}
protected function filterHandler(string $name, $value)
{
if ('navigation' === $name) {
return $this->filterByNavigation($value);
}
return parent::filterHandler($name, $value);
}
}

View File

@ -2,10 +2,10 @@
namespace App\Core\Setting;
use App\Core\Entity\Setting;
use App\Core\Factory\SettingFactory;
use App\Core\Manager\EntityManager;
use App\Core\Repository\SettingRepositoryQuery;
use App\Core\Entity\Setting;
/**
* class SettingManager.

View File

@ -2,12 +2,12 @@
namespace App\Core\Twig\Extension;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\PropertyAccess\PropertyAccess;
use Symfony\Component\PropertyAccess\PropertyAccessor;
use Twig\Environment;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
use Symfony\Component\OptionsResolver\OptionsResolver;
class CrudExtension extends AbstractExtension
{
@ -36,7 +36,7 @@ class CrudExtension extends AbstractExtension
public function renderField($entity, array $config): string
{
$field = $config['field'];
$instance = new $field;
$instance = new $field();
$resolver = $instance->configureOptions(new OptionsResolver());
return $instance->buildView($this->twig, $entity, $resolver->resolve($config['options']));

View File

@ -5,8 +5,6 @@ namespace App\Entity;
use App\Core\Doctrine\Timestampable;
use App\Core\Entity\EntityInterface;
use App\Repository\UserRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Scheb\TwoFactorBundle\Model\Google\TwoFactorInterface;
use Symfony\Component\Security\Core\User\UserInterface;