Créer une application avec Symfony2 et Doctrine2 (étape 1)

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Bien que la documentation officielle de Symfony2 s’étoffe, il est très difficile de trouver un tutoriel expliquant comment créer une application web avec Symfony2, Doctrine2 et twig et aucun tutoriel officiel pour le moment.

L’utilisation de Doctrine2 est déstabilisante au début puisque ce qui faisait son charme a disparu, toute sa magie s’est envolée, aujourd’hui on ne parle plus que de performance, fini le CRUD, tout est à faire à la main avec de nouvelles façons de procéder, c’est plus transparent et flexible, mais à ce jour, beaucoup plus long et compliqué (il faut l’avouer).

Nous allons voir dans ce tutoriel comment réaliser une application web sous Symfony2 et Doctrine2 par l’étude de cas et la réalisation d’un blog.

Introduction

A l’heure où j’écris cet article, Symfony2 n’est toujours pas en version stable et le contenu du tutoriel pourrait être amené, pour l’heure je vais utiliser la version PR11.

Le contenu pourra se voir modifier au fur et à mesure que ma connaissance s’affinera. Cela reste pour l’heure très expérimental. ;-)

A la fin de ce tutoriel, vous devriez avoir les bases nécessaires pour concevoir des applications sous Symfony2.

Bon allons y !

 

Configuration & initialisation

On va commencer par nommer notre projet « symfony2blog », par conséquent on va créer un répertoire et y déposer Symfony2 standard édition.

Allons maintenant sur la page de configuration

http://localhost/symfony2blog/web/config.php

Ce qu’on trouve dans la partie ‘recommandentations’ il n’est pas nécessaire d’installer pour faire fonctionner Symfony2, par exemple « APC » et « php_posix », pour ma part, j’en ai pas besoin (environnement de développement et sous windows). De préférence, activez l’extension d’internationalisation de PHP « intl » si ce n’est pas déjà fait, il se pourrait qu’on développe une extension pour twig par la suite exploitant « intl ».

Cliquons ensuite sur le lien « Configure your Symfony Application online ».

Nous arrivons sur une page de configuration de la base de données, nous allons renseigner les champs pour permettre à DBAL de se connecter à notre base que j’appellerai du même nom que mon projet : « symfony2blog ».

Cliquez sur « Next step » et sur generate pour générer la clé de sécurité CSRF

On termine la configuration en cliquant à nouveau sur « Next step »

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

C’est une façon de procéder mais ce n’est pas la seule, on est en droit de se poser la question suivante : mais où donc sont stockées nos données de configuration ?

Ces données de configuration ont été insérées dans le fichier parameters.ini situé dans ‘app/config/‘ ce dernier étant importé dans le fichier config.yml

//  app/config/config.yml
imports:
    - { resource: parameters.ini }

Données récupérées par Doctrine :

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver:   %database_driver%
                host:     %database_host%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%

 

Création d’un bundle

Dans Symfony2 tout est bundle, nous allons créer un nouveau bundle contenant notre application. ce bundle sera créé dans le répertoire ‘src‘.

On commence par se placer dans le répertoire créé ‘symfony2blog’.

Maintenant je peux créer mon bundle en tapant la ligne de commande suivante :

> php app/console init:bundle "Application\BlogBundle" src

On peut constater le changement au nouveau de la structure de notre projet

Je ne vais pas rentrer dans les détails en vous décrivant la structure créée car ce n’est pas le but de ce tutoriel (voir la doc officielle), on y reviendra toutefois en touchant aux aspects fonctionnels.

Pour que ce bundle soit pris en compte par Symfony2, il nous faut réaliser deux étapes supplémentaires :

  1. Ajouter le namespace de notre bundle dans l’autoloader
  2. Initialiser notre bundle.

Etape 1 :

// app/autoload.php
$loader->registerNamespaces(array(

   // ...

    'Application'      => __DIR__.'/../src',
));

Etape 2 :

// app/AppKernel.php
    public function registerBundles()
    {
        $bundles = array(

            // ...

            new Application\BlogBundle\ApplicationBlogBundle(),
        );

Voilà notre bundle est correctement configuré mais il nous manque quelque chose. Notre controller frontal réclame des routes, mais qui dit route dit controller d’actions.

Ces points seront traités dans la partie 2 du tutoriel.

La suite prochainement…

Créer une application avec symfony2 et doctrine2 (étape 2)
Créer une application avec symfony2 et doctrine2 (étape 3)


Tags: , , , , ,


25 906 commentaires pour le sujet “Créer une application avec Symfony2 et Doctrine2 (étape 1)”

  1. kokolyon :

    Merci pour ce début.
    On attend la suiet !

    SK

  2. Sylvain :

    Super!

    J’attends la suite avec impatience :)
    C’est toujours agréables d’avoir des ressources en français pour Symfony !

  3. pqwx :

    Bonjour,

    Je viens d’installer un environnement PHP/MySQL sous Nginx sur une Ubuntu (11.10) pour pouvoir installer Symfony2 et créer mon application.

    Tout s’est bien déroulé, j’ai fixé les « MAJOR PROBLEMS » ainsi que les « RECOMMENDATIONS » sauf que lorsque je clique sur « Configure your Symfony Application online » pour pouvoir configurer la connexion avec la base de données, c’est le message « Welcome to nginx! » qui s’affiche. Je trouve ca bizzare, puisque ca doit fonctionner alors qu’aucune erreur n’a été notifiée.

    Je me demande si t’as une idée d’où est ce que ca peut venir? Sinon, j’ai pensé à éditer le « parameters.ini » manuellement, mais est ce que je pourrais n’importe quelle chaine comme secret key?

    Amicalement

  4. Emmanuel PEREIRA :

    Bonjour, pour toutes questions concernant Symfony2, je vous invite à vous diriger sur le forum dédié à Symfony2 sur le site Développez : http://www.developpez.net/forums/f1591/php/bibliotheques-frameworks/symfony2/

    Et bons développements !

Laissez un commentaire :

*


created By ooyes.net