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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

demarrage d'un projet : architecture modulaire, nodejs ou SF 4 , SF4 et Postgresql, intégration continue


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut demarrage d'un projet : architecture modulaire, nodejs ou SF 4 , SF4 et Postgresql, intégration continue
    Bonjour tout le monde,
    Je suis en train de créer une application en symfony 4. Je me pose un certain nombre de questions :
    - hébergement OVH
    - Base de données postgresql (je voudrais faire un module de cartographie)
    - Symfony 4.

    - 1 : dans cette application, il va y avoir pas mal de graphique donc du js, jquery. Avec le module de cartographie, je vais utiliser openlayers je pense. Quand je lis la doc, je reviens souvent sur nodejs. Je suis un peu formée sur Symfony, pas du tout sur Nodejs.
    Je me pose la question du choix du développement symfony uniquement ? Nodejs uniquement ? les deux en partage ?
    J'ai entendu dire que nodejs serait plus performant. Je pourrais faire entièrement mon application avec Symfony avec des requête ajax. J'ai une quinzaine de module à développer. Donc le développement va durer plusieurs mois (et certainement plusieurs années). Je voudrais avoir une architecture évolutive pour pouvoir ajouter de nouveaux modules.
    Je me demandais si commencer à développer avec Symfony 4 pour démarrer et mettre mes premiers modules en route. Pour les prochains modules peut être en faire certains en nodejs et éventuellement évoluer progressivement vers nodejs.
    Je ne sais pas quoi choisir. Qu'en pensez-vous ?
    Faire le moteur avec Symfony 4 : tous les liens internes sans requête en base le faire avec Symfony.
    Par contre, toutes les requêtes en base les faire avec nodejs.
    Voila je pense que peut être le manque de clarté de ma question exprime bien mon interrogation sur le choix du langage ou le partage.

    2 - architecture modulaire. Apparement avec symfony 3 il était conseillé de faire des bundles pour faire des modules. Par contre pour symfony 4, l’architecture a été revu et je me demande comment et ou créer ces modules ?
    Je vais avoir un module de DAL, un module Util qui seront partagés entre tous les autres modules, et des modules de cartographie, de statistiques de parametrage qui seront indépendant, ... Mais je me demande concrétement dans mon code comment organiser les fichiers.
    Dans le dossier src je fais des sous-dossiers pour chacun de mes modules et dans ces dossiers, je retrouve d'architecture "classique" avec les controller, entity, repository, etc ?

    Si je privilégie nodeJS c'est possible de faire une architecture modulaire ?

    3 - connexion à la base de données
    ma base de données est postgresql. Je suis partie pour refaire une connexion classique. A priori, il n'est pas prévu de connexion à une base de postgresql avec doctrine. En information les plus récente j'ai trouvé cette discussion . Donc je pense faire ma connexion à "l'ancienne".
    Je n'ai pas trouvé de documentation sur Symfony 4 avec Postgresql. Je suis allée sur la doc de Symfony mais rien qui ne m'aide beaucoup. Si vous avez quelques références je suis preneuse.
    ma connexion "classique" à ma base fonctionne. Mais je me pose la question du lien avec Doctrine.

    4 - J'aimerai avoir une application évolutive et maintenable.
    J'ai eu un cours sur l'intégration continue. Si j'avais fait ça sur mes versions précédentes je n'aurai pas eu de souci pour la maintenir. Là j'aimerai faire ça "dans les règles de l'art". Je n'ai pas trouvé de documentation facilement abordable pour un junior sur la mise en oeuvre de cela.
    L'idée c'est de vérifier la qualité de mon code, la qualité de ma documentation, la recherche de code dupliquer, de faire les tests ... Est ce que vous auriez connaissances de document "de base" pour au moins démarrer et savoir comment intégrer cela au projet ? comment ca s'installe ? Je suis un peu perdu sur ce sujet.

    Voila beaucoup de sujets parce que j'aimerai démarrer ce projet "correctement".
    Tous conseils, toutes pistes de réflexion seront les bienvenus.
    Merci à vous
    Bonne journée
    Aurélie

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    dans cette application, il va y avoir pas mal de graphique donc du js, jquery
    En 2019 , voir 2020 si ton projet met un peu de temps à sortir , il faut je pense mettre de coté JQuery. Les navigateurs ont suffisament évolués pour ne plus en avoir besoin. Je pense même que faire de l'ES6 est envisageable.

    Je me pose la question du choix du développement symfony uniquement ? Nodejs uniquement ? les deux en partage ?
    Tu peux mixer les deux si le besoin s'en fait sentir. Par exemple nodejs va exceller dans les besoins I/O temps réels comme un chat ou une communication intensive via websocket. Perso j'irais plus vers un développement PHP pour la base de l'application et éventuellement quelques dev nodejs sur certains point où php serait moins à l'aise.
    L'environnement node et javascript de manière plus général est un peu trop jeune à mon gout. Tout est encore très volatile , la lib à la mode hier peut devenir obsolète demain, bref ce n'est , à mon avis, pas le meilleur choix pour un projet qui à besoin de vivre longtemps.

    A priori, il n'est pas prévu de connexion à une base de postgresql avec doctrine
    Doctrine est tout à fait compatible avec postgresql. Par exemple : http://chrishodgsonweb.co.uk/symfony...ny4-postgress/

    J'aimerai avoir une application évolutive et maintenable
    L'intégration continue n'intervient pas réellement dans ce besoin. C'est l'architecture de ton projet qui va faire que le projet va être maintenable et évolutif. Les design pattern sont là justement pour ça. Utiliser un framework (comme SF4) aide beaucoup à aller vers un projet maintenable et évolutf.
    La CI est surtout là pour éviter les régression de ton code au fur et à mesure des itérations.
    Les 2 éléments principaux de CI, ca va être des tests unitaire et un outil d'analyse static qui va analyser la qualité du code. Il n'ya pas vraiment de règle universelle , chacun fait un peu comme il l'entend , c'est pour ca que tu va avoir du mal à trouver un document qui fera référence en la matière.
    Gitlab est en revanche un excellent outil pour mettre en place de l’intégration continue.
    Un "tuto" intéressant sur le sujet : https://thecodingmachine.io/a-practi...gration-in-php
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut
    Bonjour,
    Super c'est exactement le genre de message que j'attendais.

    Citation Envoyé par grunk Voir le message
    En 2019 , voir 2020 si ton projet met un peu de temps à sortir , il faut je pense mettre de coté JQuery. Les navigateurs ont suffisament évolués pour ne plus en avoir besoin. Je pense même que faire de l'ES6 est envisageable.
    OK nickel ! je vais regarder ça

    Citation Envoyé par grunk Voir le message
    Tu peux mixer les deux si le besoin s'en fait sentir. Par exemple nodejs va exceller dans les besoins I/O temps réels comme un chat ou une communication intensive via websocket. Perso j'irais plus vers un développement PHP pour la base de l'application et éventuellement quelques dev nodejs sur certains point où php serait moins à l'aise.
    L'environnement node et javascript de manière plus général est un peu trop jeune à mon gout. Tout est encore très volatile , la lib à la mode hier peut devenir obsolète demain, bref ce n'est , à mon avis, pas le meilleur choix pour un projet qui à besoin de vivre longtemps.
    C'est ce qui me faisait hésiter. Tu confirmes.


    Citation Envoyé par grunk Voir le message
    Doctrine est tout à fait compatible avec postgresql. Par exemple : http://chrishodgsonweb.co.uk/symfony...ny4-postgress/
    J'ai vu ce tutoriel. Sauf que la première ligne ne passe pas "brew install postgresql".
    Je n'arrive pas à installer les pilotes de postgresql. Il faut que je regarde de manière plus précise. J'arrive à me connecter à ma base de manière traditionnel en configurant une connexion PDO.
    Il y a un "truc" qui ne passe pas mais je n'ai pas encore trouver quoi exactement.


    Citation Envoyé par grunk Voir le message
    Un "tuto" intéressant sur le sujet : https://thecodingmachine.io/a-practi...gration-in-php
    Nickel. Génial

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Sauf que la première ligne ne passe pas "brew install postgresql".
    LA commande brew c'est l'apt de macos.
    Il faut juste installer postgres localement ou configurer une instance distante
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Par défaut
    Citation Envoyé par grunk Voir le message
    LA commande brew c'est l'apt de macos.
    Il faut juste installer postgres localement ou configurer une instance distante
    et ce n'est pas possible de configurer Postgresql avec Doctrine ? Via doctrine.yaml ? J'ai essayé plusieurs configurations et je ne trouve pas la bonne.
    Ma connexion PDO fonctionne.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Citation Envoyé par evaporite Voir le message
    et ce n'est pas possible de configurer Postgresql avec Doctrine ? Via doctrine.yaml ? J'ai essayé plusieurs configurations et je ne trouve pas la bonne.
    Ma connexion PDO fonctionne.
    Doctrine fonctionne très bien avec PostgreSQL. Le seul requirement dont a besoin doctrine est l'extension pdo_pgsql.
    Ta connexion PDO fonctionne avec PostgreSQL probablement en mode Web. Fonctionne-t-elle également en mode console?
    Pour vérifier que ta connexion fonctionne en mode console,lance ton script de connexion pdo comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php script-connexion-pgsql.php
    assure toi que l'extension pdo_pgsql est activée dans le fichier de config php.ini client.

    Un exemple d'application qui fonctionne avec PostgreSQL https://github.com/api-platform/demo(dossier api)

Discussions similaires

  1. Architecture modulaire qui permet les révision
    Par loganblack dans le forum Flex
    Réponses: 0
    Dernier message: 01/09/2008, 19h40
  2. Architecture modulaire et sous-module
    Par Baptiste Wicht dans le forum Architecture
    Réponses: 8
    Dernier message: 14/05/2008, 16h41
  3. Architecture modulaire traitement d'image
    Par Mini-K dans le forum Architecture
    Réponses: 0
    Dernier message: 15/04/2008, 18h40
  4. Projet web modulaire
    Par Invité dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 23/10/2007, 10h54
  5. [Projet] Programmation modulaire d'un projet.
    Par loverdose dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 18/11/2005, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo