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

Langage PHP Discussion :

Achitecture PHP Javascript


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Juillet 2023
    Messages : 4
    Par défaut Achitecture PHP Javascript
    Bonjour,

    je travaille actuellement sur projet "Legacy" en php.
    En gros, un utilisateur se logue, répond à tout en tas de questions et à la dernière page, le site de mon client lui affiche une image et le prix du produit correspondant à ses besoins.
    Ensuite, s'il appuie sur un bouton un mail "Ascii art" lui est envoyé ainsi qu'à mon client comme bon de commande.
    Cela marchait parfaitement jusqu'à maintenant car le catalogue "produit" ne contenait qu'une vingtaine de produits.
    Mon client souhaite étoffer sa gamme et créer une image par déclinaison de produit me prendrait un temps fou.
    Pour pallier à cela, dans la dernière page j'ai ajouter un canvas pour y insérer une image 3D avec Three.js.
    Dans ma dernière page, last.php j'ai ajouté le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body>
     
        <div id="canvas"></div>
     
        <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/148/three.min.js"></script>
        <script src="myapp.js"></script>
    </body>
    Et dans myapp.js j'ai inséré le code qui permet à l'utilisateur d’interagir avec la vue 3D.

    Pour l'instant l'architecture est la suivante:
    project/
    ├── public/
    │ ├── index.php
    │ ├── last.php
    │ ├──myApi.php
    │ ├── style.css
    ├── src/
    │ ├── myapp.js

    - Que pensez-vous de cette architecture?
    - Pour l'instant myapp.js appelle le backend via myApi.php, pour l'instant aucun contrôle n'est fait, n'importe qui peut appeler cette api, comment faire pour que seulement les utilisateurs qui ont le droit de ce loguer puisse faire cet appel?
    - J'aimerais ajouter d'autres dépendances à d'autres modules javascript, on m'a dit d’utiliser "npm" et "vite.js"pour plus de facilité dans la gestion des dépendances javascript, je n'arrive pas à comprendre comment les intégrer à mon projet php.
    php est coté server, pas du coté client... il me faut deux serveurs? un coté client aussi?

    Merci de vos conseils.

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    L'idée est que le folder public soit le point d'entrée de ton application càd que si je surfe sur http tonsite.fr, le fichier index.php dans public s'affiche.

    Et si tu comrpends les limitations de cela, cela veut dire que les fichiers css et js doivent se trouver dans public et pas un niveau au-dessus (p.ex. public/assets/css et public/assets/jsCe dossier public est donc accessible sur internet. Si je fais http tonsite.fr/last.php, j'aurais donc accès au fichier en direct. Est-ce vraiment le but ? Tu pourrais mettre chaque fichier php au-dessus (c'est-à-dire dans le dossier project ou mieux un sous-dossier tel que project/app et, donc, les accès web se font via index.php qui ferait, lui, un appel (un include p.ex.) de ../app/last.php.

    Cette façon de faire est la plus sécurisée (tu restreints ce qui se trouve dans public) et c'est la norme des différents framework.

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Juillet 2023
    Messages : 4
    Par défaut
    Citation Envoyé par cavo789 Voir le message

    L'idée est que le folder public soit le point d'entrée de ton application càd que si je surfe sur http tonsite.fr, le fichier index.php dans public s'affiche.

    Et si tu comrpends les limitations de cela, cela veut dire que les fichiers css et js doivent se trouver dans public et pas un niveau au-dessus (p.ex. public/assets/css et public/assets/js
    Ok, merci du conseil.

    Citation Envoyé par cavo789 Voir le message
    Ce dossier public est donc accessible sur internet. Si je fais http tonsite.fr/last.php, j'aurais donc accès au fichier en direct. Est-ce vraiment le but ? Tu pourrais mettre chaque fichier php au-dessus (c'est-à-dire dans le dossier project ou mieux un sous-dossier tel que project/app et, donc, les accès web se font via index.php qui ferait, lui, un appel (un include p.ex.) de ../app/last.php.
    Ok, je vais modifier cela merci.

    Ce qui me dérange le plus dans cette architecture, c'est la place du javascript, et comment l'intégrer de la "meilleure" façon à mon site internet, (meilleure dans le sens plus sécurisé, plus facile à débugger, maintenir, ajouter des dépendances...)

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 698
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 698
    Par défaut
    Citation Envoyé par winni_fr Voir le message
    - Pour l'instant myapp.js appelle le backend via myApi.php, pour l'instant aucun contrôle n'est fait, n'importe qui peut appeler cette api
    si la connexion des utilisateurs se fait à l'aide d'une session php, vous pouvez faire les mêmes vérifications dans l'API que dans les autres pages.

  5. #5
    Nb
    Nb est déconnecté
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 163
    Par défaut
    Citation Envoyé par winni_fr Voir le message
    php est coté server, pas du coté client... il me faut deux serveurs? un coté client aussi?
    Hein ?
    Je ne comprend pas la question en fait, "un serveur coté client" n'a pas de sens dans un contexte d'application web.
    Le serveur c'est le serveur web et le client c'est le navigateur de l'internaute.

    Pour le reste je ne comprend pas non plus ce qu'est myAPI.php. C'est vraiment une API ou c'est juste ton code metier?

  6. #6
    Candidat au Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Juillet 2023
    Messages : 4
    Par défaut
    Merci de ta demande de précision.
    Citation Envoyé par Nb Voir le message
    Hein ?
    Je ne comprend pas la question en fait, "un serveur coté client" n'a pas de sens dans un contexte d'application web.
    Le serveur c'est le serveur web et le client c'est le navigateur de l'internaute.
    Ce que je voulais dire, c'est que pour l'instant, mon javascript à une dépendance à Three.js que le php intégerer à la page demandé avec un appel à un serveur extérieur. (via la ligne
    <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/110/three.min.js"></script>)

    Ce que je voudrais, c'est que se soit mon propre site internet qui fournisse cette dépendance, pas faire appel à un serveur tiers.
    voir même fournir un "module" qui fournisse tout mon code et les dépandances.

    Citation Envoyé par Nb Voir le message
    Pour le reste je ne comprend pas non plus ce qu'est myAPI.php. C'est vraiment une API ou c'est juste ton code metier?
    Oui, c'est une vraie api que j'appelle pour charger une nouvelle géométrie ou un nouveau matériau à afficher sur ma vue3D.

  7. #7
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 698
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 698
    Par défaut
    Citation Envoyé par winni_fr Voir le message
    Ce que je voudrais, c'est que se soit mon propre site internet qui fournisse cette dépendance, pas faire appel à un serveur tiers.
    et pourquoi ?
    ce n'est pas une question piège, il y a des bonnes raisons d'intégrer cela à votre application mais il existe aussi des bonne raison d'utiliser un RDC, cela dépend de votre cahier des charges.

    un des avantages principaux du RDC est le temps de chargement. votre serveur unique est configuré pour lancer des contenus dynamiques donc le logiciel serveur met plus de temps à fournir ce fichier par rapport à un RDC dont le logiciel serveur est configuré pour fournir du contenu statique. de plus la machine serveur d'un RDC est souvent beaucoup plus puissante que votre hébergement même s'il s'agit d'un serveur dédié.
    https://fr.wikipedia.org/wiki/R%C3%A...ion_de_contenu

  8. #8
    Candidat au Club
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant MOA

    Informations forums :
    Inscription : Juillet 2023
    Messages : 4
    Par défaut
    Citation Envoyé par mathieu Voir le message
    et pourquoi ?
    ce n'est pas une question piège, il y a des bonnes raisons d'intégrer cela à votre application mais il existe aussi des bonne raison d'utiliser un RDC, cela dépend de votre cahier des charges.
    C'est une demande du service qualité de mon client. Ils ne veulent pas de "dépendances externes"

    La vitesse de chargement n'est pas un problèmes, certaines données à afficher dans la 3D prennent environ 1 min à être téléchargées par le client...

Discussions similaires

  1. détection JVM installé avec script php/javascript
    Par <DYDY> dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/06/2006, 14h42
  2. [PHP-JS] Problème php-javascript (suite)
    Par nicoaix dans le forum Langage
    Réponses: 4
    Dernier message: 21/12/2005, 10h47
  3. Réponses: 8
    Dernier message: 10/11/2005, 15h58
  4. Réponses: 7
    Dernier message: 08/10/2005, 08h59
  5. [PHP-JS] php & javascript
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2005, 11h18

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