Symfony 2

Accélérer le mode dev sur MACOSX

À modifier sur php.ini :

realpath_cache_size = 4096k
realpath_cache_ttl = 7200

Désactiver XDebug

Activer APC

Créer un projet

composer.phar create-project symfony/framework-standard-edition somewhere/ 2.3.0

Afficher les routes disponibles

./app/console router:debug

Mettre à jour la base de donnée

./app/console doctrine:schema:update

Vider le cache

./app/console cache:clear --env=prod

ACL

Le rôle IS_AUTHENTICATED_REMEMBERED est donné à un utilisateur qui s’est authentifié soit automatiquement grâce au cookie remember_me, soit en utilisant le formulaire de connexion.

Le rôle IS_AUTHENTICATED_FULLY est donné à un utilisateur qui s’est obligatoirement authentifié manuellement, en rentrant son mot de passe dans le formulaire de connexion. C’est utile pour protéger les opérations sensibles comme le changement de mot de passe ou d’adresse e-mail.

Fichiers statics

http://symfony.com/doc/current/cookbook/assetic/asset_management.html

Installer dans le répertoire web tous les fichiers des bundles :

./app/console assets:install

Twig

Ne pas appliquer un filtre en mode dev

{% stylesheets filter='?yui_css' %}

Génération CSS pour la prod

./app/console assetic:dump --env=prod

Le contrôleur frontal doit être à :

$kernel = new AppKernel('prod', false);

SCSS PHP

Installation

Ajouter dans composer : leafo/scssphp

Ajouter le filtre dans la config assetic :

assetic:
    filters:
        scssphp:
            file: %kernel.root_dir%/../vendor/leafo/scssphp/scss.inc.php
            apply_to: "\.scss$"

Utilisation dans Twig

{% stylesheets 'bundles/mybundle/css/main.scss' filter='scssphp' %}

Test unitaire

<?php

namespace My\Bundle\Tests;

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;

use My\Bundle\Entity\User;

class SearchTest extends KernelTestCase
{
    public function test_1() 
    {
        $kernel = self::createKernel();
        $kernel->boot();
        $container = $kernel->getContainer();

        $user = new User();
        $token = new UsernamePasswordToken($user, null, 'main', array('IS_AUTHENTICATED_FULLY', 'IS_AUTHENTICATED_ANONYMOUS'));
        $context = $container->get('security.context');
        $context->setToken($token);

        // ...
    }
}