## Bases & syntaxe
### Créer un nouveau projet Symfony
```symfony
composer create-project symfony/website-skeleton my_project
Utilisé pour démarrer un nouveau projet Symfony.
Créer une nouvelle commande personnalisée
php bin/console make:command MyCustomCommand
Crée une commande personnalisée pour exécuter des tâches répétitives.
Structures de données
Utiliser les tableaux (arrays)
$users = ['Alice', 'Bob', 'Charlie'];
Stocke et manipule des ensembles de données associatifs ou indexés.
Utiliser les objets (objects)
$user = new User();
$user->setName('Alice');
Crée des instances d'objets pour encapsuler du comportement et des données.
Fonctions & methodes essentielles
Récupérer une variable d'environnement
$envValue = $_ENV['MY_ENV_VARIABLE'];
Accède à des variables d'environnement définies dans le fichier
.env.
Logger un message
$this->logger->info('This is an info message');
Enregistre une information utile pour le débogage.
Patterns courants
Contrôleur (Controller)
class HomeController extends AbstractController
{
public function index()
{
return $this->render('home/index.html.twig');
}
}
Gère les requêtes HTTP et retourne des vues.
Service (Service)
class UserService
{
public function findUserById($id)
{
// Logique de recherche d'utilisateur
}
}
Contient la logique métier réutilisable.
Opérations avancées
Utiliser le gestionnaire d'événements (Event Dispatcher)
$event = new MyCustomEvent();
$this->dispatcher->dispatch($event, 'my_event');
Gère les événements pour une communication entre composants.
Créer un formulaire personnalisé
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', TextType::class);
}
}
Crée des formulaires personnalisés pour gérer les données utilisateurs.
Debugging & outils
Utiliser le débogage interactif (Xdebug)
$x = 10;
$y = $x + 5; // Set a breakpoint here with 'xdebug_break()'
Permet de déboguer le code en mode interatif.
Afficher les informations du dump
dump($user);
Affiche l'inspecteur de variables pour débugger rapidement.
Utiliser Symfony VarDumper
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\VarDumper;
$var = new \stdClass();
$var->foo = 'bar';
VarDumper::dump($var);
Affiche des informations détaillées sur les objets et variables.