Qual é o benefício de um diretório de pub no Magento 2

11

Talvez eu não esteja conseguindo, mas se meus arquivos já estiverem armazenados em cache, qual seria o uso de um diretório de pub no Magento 2? Meu único palpite educado seria que o uso do mecanismo de fallback poderia ser aliviado de alguma forma por ter um conjunto conhecido de arquivos para o tema.

Ao ler os documentos, não compreendo claramente os benefícios, embora sinta uma forte compreensão de arquivos dinâmicos, estáticos e em cache.

Pelo que entendi, o cache é simplesmente um local conhecido definido de ativos, o que me levou a adivinhar que o diretório pub é um mecanismo que padroniza o local dos arquivos para reduzir os recursos utilizados no mecanismo de fallback.

Brian Ellis
fonte
grande questão, gostaria de saber se a coisa a segurança é o único benefício ou também melhora a velocidade
Claudiu Creanga

Respostas:

15

O diretório pub é uma medida de segurança para bloquear o acesso público aos ativos do diretório raiz, ou seja, o diretório do aplicativo. Presume-se que a razão pela qual o index.php também esteja localizado no diretório raiz seja dirigida a indivíduos cujo host da web dificulte ou seja impossível alterar sua raiz da web.

Ao utilizar o pub / index.php, a pasta de origem do aplicativo não poderá ser acessada enquanto poderia ser se o index.php estivesse sendo executado no diretório raiz. Essa prática também é vista no Symfony e no Zend 2.

Dessa forma, nenhuma das configurações, modelos, etc. de aplicativos Magento é exposta.

Geralmente, o conhecimento da arquitetura em relação ao pub index.php vs root index.php não é necessário para desenvolvedores de front-end em uma equipe, mas é bom saber o básico.

Brian Ellis
fonte
você precisa adicionar document_root_is_pub = trueno seu ./app/etc/env.phpse a sua raiz for /pub/- github.com/magento/magento2/pull/9094 #
Alex Gusev
10

O Magento 2 vem com dois arquivos index.php, onde um arquivo está dentro da pasta raiz e outro na pasta / pub. O Magento 2 se oferece para executar seu aplicativo usando qualquer um desses arquivos. Se você optar por executar seu aplicativo usando /pub/index.php, é uma boa decisão do ponto de vista de segurança, pois restringe o acesso direto não autorizado aos arquivos do aplicativo.

Como observação, é bom lembrar que o /index.phparquivo é usado ao executar como modo de desenvolvedor e /pub/index.phpé usado ao executar como modo de produção

Raphael na Digital Pianism
fonte
1
Agradeço salientar que existem 2 arquivos index.php, mas qual foi o benefício e o uso da implementação usando essa arquitetura de tipo, também não foram abordados. A menos que eu esteja perdendo mais informações sobre o assunto, respondi à pergunta pesquisando os artigos e documentos de Alan Storm, Zend e Symfony.
Brian Ellis
em relação à sua última declaração sobre dev / prod, você pode confirmar onde isso é feito? Eu não vejo nada parecido
Claudiu Creanga
Estou com @brianellis por que precisa ser assim? Parece que não engana o navegador, pelo que vejo.
precisa saber é