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.

Brian Ellis
la source
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.

Brian Ellis
la source
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

Raphael chez Digital Pianism
la source
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