Quel est l'avantage d'un annuaire de pub dans Magento 2


11

Peut-être que je ne l'obtiens pas, mais si mes fichiers sont déjà mis en cache, à quoi servirait un répertoire de pub dans Magento 2? Ma seule supposition éclairée serait que l'utilisation du mécanisme de secours pourrait être quelque peu atténuée en ayant un ensemble connu de fichiers pour le thème.

En lisant les documents, je ne comprends pas clairement les avantages, même si je pense avoir une bonne compréhension des fichiers dynamiques, statiques et mis en cache.

Si je comprends bien, le cache est simplement un emplacement défini défini d'actifs qui m'a amené à deviner que le répertoire pub est un mécanisme qui standardise l'emplacement des fichiers pour réduire les ressources utilisées sur le mécanisme de secours.


grande question, je me demande si la sécurité est le seul avantage ou si elle améliore également la vitesse
Claudiu Creanga

Réponses:


15

Le répertoire pub est une mesure de sécurité pour bloquer l'accès public à vos actifs de répertoire racine, à savoir le répertoire de l'application. La raison pour laquelle index.php se trouve également dans le répertoire racine est censée s'adresser aux individus dont l'hébergeur rend difficile ou impossible de modifier votre racine Web.

Lorsque vous utilisez pub / index.php, le dossier source de l'application ne pourra pas être consulté alors qu'il pourrait l'être si index.php était exécuté à partir du répertoire racine. Cette pratique est également observée dans Symfony et Zend 2.

De cette façon, aucune des configurations, modèles, etc. de l'application Magento n'est exposée.

Généralement, la connaissance de l'architecture en ce qui concerne le pub index.php vs root index.php n'est pas nécessaire pour les développeurs frontend d'une équipe, mais comprendre ses bases est bon à savoir.


vous devez ajouter document_root_is_pub = truevotre ./app/etc/env.phpsi votre racine est /pub/- github.com/magento/magento2/pull/9094
Alex Gusev

10

Magento 2 est livré avec deux fichiers index.php où un fichier se trouve dans le dossier racine et un autre dans le dossier / pub. Magento 2 propose d'exécuter votre application en utilisant l'un de ces fichiers. Si vous choisissez d'exécuter votre application à l'aide de /pub/index.php, c'est une bonne décision du point de vue de la sécurité car elle restreint l'accès direct non autorisé aux fichiers d'application.

Comme note latérale, il est bon de garder à l'esprit que le /index.phpfichier est utilisé lors de l'exécution en mode développeur et /pub/index.phpest utilisé lors de l'exécution en mode production


1
J'apprécie de souligner qu'il existe 2 fichiers index.php mais quant aux avantages et à l'utilisation de l'implémentation utilisant cette architecture de type, aucun n'a été abordé. Sauf si je manque plus d'informations sur le sujet, j'ai continué et répondu à la question en parcourant les articles et les documents d'Alan Storm, Zend et Symfony.
Brian Ellis

concernant votre dernière déclaration sur dev / prod, pouvez-vous confirmer où cela se fait? Je ne vois rien de tel
Claudiu Creanga

Je suis avec @brianellis pourquoi faut-il qu'il en soit ainsi? De toute façon, cela ne semble pas tromper le navigateur.
ladle3000
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.