Symfony2 sans passer par doctrine
mimigsm
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Gasprod Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Gasprod Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors j'ai une quantité de données un peu énorme. Pour la gérer j'utilise un plugin qui se base sur Ajax pour me charger des portions de données sous forme de pages. Le plugin a été testé avec du simple php, il marche nickel. Comme je travail sur un projet Symfony2, j'ai voulu l'intégrer dans mon projet. Le problème que j'ai rencontré est au niveau de la taille de la mémoire de la part de Doctrine2. J'ai laissé tomber la notion de la couche modèle et j'ai décider d'utiliser le code natif php directement dans mon controlleur avec mysql_connect et tout. Il parait que Symfony2 utilise toujours Doctrine. Qui peut me proposer une solution pour utiliser le code sans passer par Doctrine, ou bien pour gérer la taille de la mémoire de cette doctrine qui semble compliquer la vie au lieu de la simplifier :/
Alors j'ai une quantité de données un peu énorme. Pour la gérer j'utilise un plugin qui se base sur Ajax pour me charger des portions de données sous forme de pages. Le plugin a été testé avec du simple php, il marche nickel. Comme je travail sur un projet Symfony2, j'ai voulu l'intégrer dans mon projet. Le problème que j'ai rencontré est au niveau de la taille de la mémoire de la part de Doctrine2. J'ai laissé tomber la notion de la couche modèle et j'ai décider d'utiliser le code natif php directement dans mon controlleur avec mysql_connect et tout. Il parait que Symfony2 utilise toujours Doctrine. Qui peut me proposer une solution pour utiliser le code sans passer par Doctrine, ou bien pour gérer la taille de la mémoire de cette doctrine qui semble compliquer la vie au lieu de la simplifier :/
A voir également:
- Symfony2 sans passer par doctrine
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Réinitialiser pc sans mot de passe - Guide
- Passer de majuscule à minuscule - Guide
- Passer à windows 11 gratuitement - Guide
3 réponses
Bien sûr que oui on peut utilser Symfony2 sans Doctrine ! C'est la philosophie même de Symfony : être flexible. Tu peux choisir d'utiliser n'importe quel outil.
Par contre, évite d'utiliser les fonction mysql_*, elle sont clairement dépréciées. Mais tu peux évidemment utiliser PDO.
Le mieux, c'est de déclarer un service qui effectue la connexion à la base de données avec PDO (et qui fournit donc un objet PDO).
Après à toi de bien t'organiser. Si tu veux aller vite, tu fais tes requêtes dans ton contrôleur, sinon, au mieux, tu te fais des classes à part qui prenne l'objet PDO en paramètre et qui font les requêtes et renvoi le résultat au contrôleur.
Après, pour revenir sur la performance de Doctrine, il faut être sûr de bien optimiser ses requêtes via les repository. Ensuite, il faut configurer le cache de Doctrine.
Par contre, évite d'utiliser les fonction mysql_*, elle sont clairement dépréciées. Mais tu peux évidemment utiliser PDO.
Le mieux, c'est de déclarer un service qui effectue la connexion à la base de données avec PDO (et qui fournit donc un objet PDO).
Après à toi de bien t'organiser. Si tu veux aller vite, tu fais tes requêtes dans ton contrôleur, sinon, au mieux, tu te fais des classes à part qui prenne l'objet PDO en paramètre et qui font les requêtes et renvoi le résultat au contrôleur.
Après, pour revenir sur la performance de Doctrine, il faut être sûr de bien optimiser ses requêtes via les repository. Ensuite, il faut configurer le cache de Doctrine.
Alors là, super bonne question !
Normalement oui tu dois utiliser Doctrine2 avec Symfony2 pour modéliser une base de données objet.
Travailler sans Doctrine implique donc à contourner le principe même de ce framework PHP objet.
Je ne sais pas si on peut faire ce que tu demandes, je suis d'ailleurs curieux de connaître la réponse. Mais je ne pense pas que cela soit possible.
Bon courage à toi pour la solution.
Normalement oui tu dois utiliser Doctrine2 avec Symfony2 pour modéliser une base de données objet.
Travailler sans Doctrine implique donc à contourner le principe même de ce framework PHP objet.
Je ne sais pas si on peut faire ce que tu demandes, je suis d'ailleurs curieux de connaître la réponse. Mais je ne pense pas que cela soit possible.
Bon courage à toi pour la solution.
Salut Vinorcola ,
voilà , j'ai découvert Symfony2 il y a 6 semaines , et j'y consacre +- > 10h / jours et ce afin de faire un travail de fin d'étude ... et je suis sur le point d'abandonner la piste Symfony à cause de Doctrine ...
Je suis très à l'aise avec PDO et sql mais COMPLETEMENT PERDU par doctrine ...
je suis EXTREMEMENT intéressé par la solution du service que tu mentionnes ... peux-tu développer un peu cette solution ...
j'ai tjrs eu l'habitude jusqu'ici de creer mes classes manuellement en fichier .php et un manager.php par classe que je manipule (pour le CRUD) ...
Merci INFINIMENT pour ton aide ou toute info , source que tu pourrais me fournir ... ( mail privé si tu préfères ... ) !!
Gasprod@
voilà , j'ai découvert Symfony2 il y a 6 semaines , et j'y consacre +- > 10h / jours et ce afin de faire un travail de fin d'étude ... et je suis sur le point d'abandonner la piste Symfony à cause de Doctrine ...
Je suis très à l'aise avec PDO et sql mais COMPLETEMENT PERDU par doctrine ...
je suis EXTREMEMENT intéressé par la solution du service que tu mentionnes ... peux-tu développer un peu cette solution ...
j'ai tjrs eu l'habitude jusqu'ici de creer mes classes manuellement en fichier .php et un manager.php par classe que je manipule (pour le CRUD) ...
Merci INFINIMENT pour ton aide ou toute info , source que tu pourrais me fournir ... ( mail privé si tu préfères ... ) !!
Gasprod@
Salut, tu trouveras sur le site du zéro un excellent tutoriel sur Symfony2. Il y a deux chapitres expliquant la création des services.
http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2/les-services-theorie-et-creation
http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2/les-services-utilisation-poussee
http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2/les-services-theorie-et-creation
http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2/les-services-utilisation-poussee
-re-Salut !
j'ai déjà lu le livre du sdz (entre autre) et le chapitre sur les services ...
je pensais que tu aurais une proposition de service ...
j'ai trouvé çà sur le net :
************************
$conn = $this->get('database_connection');
$users = $conn->fetchAll('SELECT * FROM users');
ou (obselet ? ) -> $con = Doctrine_Manager::getInstance()->connection();
si çà peut aider qqu'un !
Merci qd même.
Gasprod
j'ai déjà lu le livre du sdz (entre autre) et le chapitre sur les services ...
je pensais que tu aurais une proposition de service ...
j'ai trouvé çà sur le net :
************************
$conn = $this->get('database_connection');
$users = $conn->fetchAll('SELECT * FROM users');
ou (obselet ? ) -> $con = Doctrine_Manager::getInstance()->connection();
si çà peut aider qqu'un !
Merci qd même.
Gasprod
Là, tu utilise quand même Doctrine, mais sans l'ORM (juste le DBAL).
Après, j'ai jamais utiliser Symfony2 sans Doctrine personnellement, mais l'esprit, c'est de créé un service qui te renvoie un objet PDO qui est connecté à la base de donnée.
L'avantage, c'est que la connexion ne se fait que si tu demande le service au moins une fois. Si tu l'utilise plusieurs fois, le service te retourne la même instance PDO. Donc ya toujours qu'une seule connexion. Et tu peut faire plusieurs Statement avec.
Après, j'ai jamais utiliser Symfony2 sans Doctrine personnellement, mais l'esprit, c'est de créé un service qui te renvoie un objet PDO qui est connecté à la base de donnée.
L'avantage, c'est que la connexion ne se fait que si tu demande le service au moins une fois. Si tu l'utilise plusieurs fois, le service te retourne la même instance PDO. Donc ya toujours qu'une seule connexion. Et tu peut faire plusieurs Statement avec.
je suis d'accord avec toi ,
$conn est déjà un objet de type PDO étant donné que j'ai configuré le fichier app/config/parameters.yml de la sorte ... quand tu parles d'instance unique , à savoir d'un singleton , il s'agit en fait en jargon symfonyen de 'persistence' ...(cfr le chapitre sur les services et le point 'persistence des services' ... en tout cas , merci de m'avoir sugérer une piste parmis de nombreuses pistes !
que la force soit avec toi Vinorcola ! @+ Gasprod
$conn est déjà un objet de type PDO étant donné que j'ai configuré le fichier app/config/parameters.yml de la sorte ... quand tu parles d'instance unique , à savoir d'un singleton , il s'agit en fait en jargon symfonyen de 'persistence' ...(cfr le chapitre sur les services et le point 'persistence des services' ... en tout cas , merci de m'avoir sugérer une piste parmis de nombreuses pistes !
que la force soit avec toi Vinorcola ! @+ Gasprod