IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ SymfonyConsultez toutes les FAQ

Nombre d'auteurs : 17, nombre de questions : 81, dernière mise à jour : 18 juin 2017  Ajouter une question

 

Les questions redondantes se multipliant sur le forum Symfony, nous avons choisi de créer cette FAQ afin de regrouper les questions qui sont posées fréquemment.

Vos remarques et idées sont les bienvenues. Et pourquoi pas votre aide ! S'il vous prend l'envie de tailler votre plus belle plume et de retrousser vos manches, il y a de quoi faire !

SommaireSymfony 2Gestion des bases de données sur Symfony 2Généralités sur les bases de données avec Symfony 2 (3)
précédent sommaire suivant
 

Pour créer une base de données de type MySQL, il faut éditer le fichier Symfony2/app/config/parameters.ini (« Symfony2 », étant le nom du répertoire de l'installation Symfony2).

Dans ce fichier, on définit le nom, le type et d'autres paramètres de la base de données :

[parameters]
database_driver = pdo_mysql
database_host = localhost
database_port =
database_name = nom-de-la-base-de-donnees
database_user = root
database_password = mot-de-passe-securise

mailer_transport = smtp
mailer_host = localhost
mailer_user =
mailer_password =

locale = fr

secret = 16b10f9d2e7885152d41ea6175886563a

Ensuite, il faut taper la commande suivante dans la console :

php app/console doctrine:database:create

On obtient alors le message de confirmation de création de la base de données :
Created database for connection named nom-de-la-base-de-donnees

Il est aussi possible d'utiliser l'assistant de configuration intégré dans Symfony2 disponible à l'adresse : http://localhost/Symfony2/web/app_dev.php/_configurator/.

Mis à jour le 15 novembre 2015 Siguillaume

Pour créer dans sa base de données, les tables associées aux entités, il faut saisir dans la console, la commande suivante :

php app/console doctrine:schema:create

On reçoit le message de confirmation suivant :
Database schema successfully created

Mis à jour le 15 novembre 2015 Siguillaume

Il est possible d'exécuter des requêtes SQL sans passer par doctrine. Par exemple, pour accéder à des fonctions en PL/pgSQL, PLSQL, Transac-SQL, etc. Cela est aussi possible si on veut accéder à des colonnes ou des types non mappés dans des entités.

L'accesseur « Doctrine\DBAL\getConnection() » de la classe « EntityManager » permet d'accéder à la classe « Connection » de Doctrine2. Celle-ci contient une méthode « exec() » qui peut exécuter des requêtes SQL qui « court-circuitent » le mapping et accèdent donc aux fonctions pl/pgSQL.

Exemple avec les valeurs à encoder passées dans les paramètres HTTP GET. La fonction pl/pgsql à appeler est ici GEOMFROMTEXT de PostGIS qui prend deux paramètres (une chaîne de caractères de type « POINT(X Y) » et un entier qui sert de numéro de code pour la projection géographique) :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
 
  /** 
     * @Route("/insertionpoint/{description}/{latitude}/{longitude}/{projection}") 
     */ 
    public function insertPostGISPointAction($description, $latitude, $longitude, $projection) 
    { 
		$em = $this->container->get('doctrine')->getEntityManager(); 
		$connection=$em->getConnection(); 
		$st=$connection->exec("INSERT INTO test_gis_doctrine(id, description, the_geom) SELECT COALESCE(MAX( id ),0)+1 , '".$description."', GEOMFROMTEXT('POINT(".$longitude." ".$latitude.")', ".$projection.") FROM test_gis_doctrine;"); 
    }


Les méthodes suivantes de la classe Connection sont fort utiles pour remapper le résultat d'une requête passée directement en SQL dans un objet, car elles renvoient le résultat dans un tableau :

array fetchAll(string sql, array params)

Prepares and executes an SQL query and returns the result as an associative array..

array fetchArray(string statement, array params)
Prepares and executes an SQL query and returns the first row of the result as a numerically indexed array..

array fetchAssoc(string statement, array params)
Prepares and executes an SQL query and returns the first row of the result as an associative array..

mixed fetchColumn(string statement, array params, int colnum)
Prepares and executes an SQL query and returns the value of a single column of the first row of the result...

Mis à jour le 14 novembre 2015 CetTer ClaudeLELOUP Siguillaume

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2021 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.