Skip to content

Instantly share code, notes, and snippets.

View NicolasBadey's full-sized avatar

Nicolas Badey NicolasBadey

View GitHub Profile
@NicolasBadey
NicolasBadey / CalculatorHandler.php
Last active September 16, 2022 15:06 — forked from takali/CalculatorHandler.php
Symfony : Inject all class implementing a specific interface
<?php
namespace App\Handler;
use App\Calculator\CalculatorInterface;
class CalculatorHandler
{
/**
* @var CalculatorInterface[]
<?php
namespace Cappl;
use Symfony\Component\Console\Application as BaseApplication;
use Cappl\Console\Command\ContainerAwareCommand;
use Symfony\Component\Console\Command\Command;
use Pimple\ServiceProviderInterface;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@NicolasBadey
NicolasBadey / function.php
Last active August 29, 2015 14:10
Supinternet A1 correction TD3
<?php
/**
* Write File accepte un nom de fichier en paramétre et un tableau,
* Ici j'oblige à ce que la variable $value soit un tableau
*/
function writeFile($file, array $value)
{
// Vérifie si le fichier existe déjà
if (file_exists($file)) {
@NicolasBadey
NicolasBadey / gist:8070529
Last active January 1, 2016 01:08
Rendu IIM Symfony2 module 1

#Rendu IIM Symfony2 module 1

Date de rendu : 02/01/2014 00:00:00

Sauf exception vous avez tous besoin de loguer et permettre l’inscription d’utilisateurs, FOSUserBundle est fait pour ça.

N’oubliez pas de sécuriser vos routes non public dans security.yml avec le ROLE_USER.

Il est donc obligatoire de l’implémenter, idem pour SonataAdminBundle, accessible pas un User ayant le ROLE_ADMIN, il doit donc servir qu’a l’administrateur, pas aux Users de base.

@NicolasBadey
NicolasBadey / gist:8069254
Last active January 1, 2016 00:49
Overriding Default FOSUserBundle Templates

Overriding Default FOSUserBundle Templates

Nous avons deux solutions pour ce faire, nous choisissons de ne pas utilsier l'heritage de bundle, pour plus d'info sur cette seconde solution : https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.md cf solution b).

Solution en écrasant les vues d'un Bundle :

En créant app/Resources/FOSUserBundle/views/layout.html.twig nous écrasons le layout par defaut de FOSUserBundle, ceci étant vallable pour n'importe quel autre bundle

Voici le fichier :

@NicolasBadey
NicolasBadey / gist:8019798
Last active December 31, 2015 17:19
DoctrineListener - IIM

dans app/config/config.yml

article.listener:
    class: IIM\BlogBundle\Listener\ArticleListener
    arguments: ["@service_container"]
    tags :
      - { name: doctrine.event_listener, event: prePersist }

IIM\BlogBundle\Listener

@NicolasBadey
NicolasBadey / PHP
Last active December 31, 2015 13:49
AbstractManager for IIM
<?php
namespace IIM\ArticleBundle\Manager;
use Doctrine\Common\Persistence\ObjectManager;
abstract class Manager
{
protected $objectManager;
protected $class;
@NicolasBadey
NicolasBadey / gist:7995592
Last active December 31, 2015 13:49
ex action - IIM
<?php
public function createAction(Request $request)
{
$form = $this->createForm('iim.article.form.type', null, array(
'action' => $this->generateUrl('article_create'),
'method' => 'POST',
));
$form->add('submit', 'submit', array('label' => 'Create'));
@NicolasBadey
NicolasBadey / gist:7991350
Last active December 31, 2015 13:09
Sonata pour l'IIM

##Dans composer.json

    "sonata-project/doctrine-orm-admin-bundle": "dev-master"

puis faire php composer.phar update

##Dans app/appKernel.php ajouter les bundle :

new Sonata\CoreBundle\SonataCoreBundle(),

namespace ...;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Form;
abstract class BaseFormFlowHandler extends BaseFormHandler
{
protected $step;
protected $request;