Qual è il vantaggio di una directory pub in Magento 2


11

Forse non lo capisco, ma se i miei file sono già memorizzati nella cache, quale sarebbe l'uso di una directory pub in Magento 2? La mia unica ipotesi istruita sarebbe che l'uso del meccanismo di fallback potrebbe essere in qualche modo alleviato avendo un set noto di file per il tema.

Attraverso la lettura dei documenti non ho una chiara comprensione del vantaggio, anche se sento di avere una profonda comprensione dei file dinamici, statici e memorizzati nella cache.

A quanto ho capito, la cache è semplicemente una posizione nota definita delle risorse che mi ha portato a indovinare che la directory pub è un meccanismo che standardizza la posizione dei file per ridurre le risorse utilizzate sul meccanismo di fallback.


bella domanda, mi chiedo se la cosa della sicurezza sia l'unico vantaggio o se migliora anche la velocità
Claudiu Creanga,

Risposte:


15

La directory pub è una misura di sicurezza per bloccare l'accesso pubblico alle risorse della directory principale, vale a dire la directory dell'app. Si presume che il motivo per cui index.php si trovi anche nella directory principale sia indirizzato a persone il cui webhost rende difficile o impossibile cambiare il proprio webroot.

Quando si utilizza pub / index.php la cartella di origine dell'app non sarà accessibile mentre potrebbe essere se index.php fosse eseguito dalla directory principale. Questa pratica è vista anche in Symfony e Zend 2.

In questo modo nessuna delle configurazioni dell'applicazione Magento, i modelli, ecc. Sono esposti.

Generalmente, la conoscenza dell'architettura rispetto al pub index.php vs root index.php non è necessaria per gli sviluppatori frontend di una squadra, ma è bene conoscerne le basi.


devi aggiungere il document_root_is_pub = truetuo ./app/etc/env.phpse la tua radice è /pub/- github.com/magento/magento2/pull/9094
Alex Gusev

10

Magento 2 viene fornito con due file index.php in cui un file si trova nella cartella principale e un altro nella cartella / pub. Magento 2 offre di eseguire l'applicazione utilizzando uno di questi file. Se scegli di eseguire la tua applicazione usando /pub/index.php, è una buona decisione dal punto di vista della sicurezza in quanto limita l'accesso diretto non autorizzato ai file dell'applicazione.

Come nota a margine è bene tenere presente che il /index.phpfile viene utilizzato quando viene eseguito come modalità sviluppatore e /pub/index.phpviene utilizzato quando si esegue come modalità di produzione


1
Apprezzo il fatto che ci siano 2 file index.php ma per quanto riguarda il vantaggio e l'uso dell'implementazione usando questa architettura di tipo, nessuno dei due è stato affrontato. A meno che non mi manchi di più sull'argomento che ho affrontato e ho risposto alla domanda esaminando gli articoli e i documenti di Alan Storm, Zend e Symfony.
Brian Ellis,

per quanto riguarda la tua ultima affermazione su dev / prod, puoi confermare dove è stato fatto? Non vedo niente del genere
Claudiu Creanga,

Sono con @brianellis perché deve essere così? Non sembra ingannare il browser comunque da quello che posso vedere.
mestolo 3000
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.