Jakie są zalety katalogu pubów w Magento 2

11

Może po prostu tego nie rozumiem, ale jeśli moje pliki są już buforowane, to jaki byłby użytek z katalogu pub w Magento 2? Moim jedynym wykształconym przypuszczeniem byłoby to, że użycie mechanizmu rezerwowego można by nieco złagodzić poprzez posiadanie znanego zestawu plików dla motywu.

Czytając dokumenty, nie rozumiem korzyści, chociaż czuję, że dobrze rozumiem dynamiczne, statyczne i buforowane pliki.

Jak rozumiem, pamięć podręczna jest po prostu zdefiniowaną znaną lokalizacją zasobów, co doprowadziło mnie do odgadnięcia, że ​​katalog pub jest mechanizmem, który standaryzuje miejsce plików, aby zmniejszyć zużycie zasobów w mechanizmie rezerwowym.

Brian Ellis
źródło
Świetne pytanie, zastanawiam się, czy ochrona jest jedyną korzyścią, czy też poprawia prędkość
Claudiu Creanga

Odpowiedzi:

15

Katalog pub jest środkiem bezpieczeństwa, aby zablokować publiczny dostęp do zasobów katalogu głównego, a mianowicie katalogu aplikacji. Powodem, dla którego index.php znajduje się również w katalogu głównym, jest adresowane do osób, których hosting utrudnia lub uniemożliwia zmianę twojego webroota.

Podczas korzystania z pub / index.php nie będzie można uzyskać dostępu do folderu źródłowego aplikacji, choć może tak być, jeśli index.php był uruchamiany z katalogu głównego. Ta praktyka jest również widoczna w Symfony i Zend 2.

W ten sposób żadna konfiguracja, szablony itp. Magento nie są ujawniane.

Ogólnie rzecz biorąc, znajomość architektury w odniesieniu do pub index.php vs. root index.php nie jest potrzebna programistom frontend w zespole, ale dobrze jest znać jej podstawy.

Brian Ellis
źródło
musisz dodać document_root_is_pub = truew swoim ./app/etc/env.phpkatalogu głównym /pub/- github.com/magento/magento2/pull/9094
Alex Gusev
10

Magento 2 zawiera dwa pliki index.php, w których jeden plik znajduje się w folderze głównym, a drugi w folderze / pub. Magento 2 oferuje uruchomienie aplikacji przy użyciu dowolnego z tych plików. Jeśli zdecydujesz się uruchomić aplikację za pomocą /pub/index.php, jest to dobra decyzja z punktu widzenia bezpieczeństwa, ponieważ ogranicza nieautoryzowany bezpośredni dostęp do plików aplikacji.

Na marginesie warto pamiętać, że /index.phpplik jest używany, gdy działa jako tryb programisty i /pub/index.phpjest używany, gdy działa jako tryb produkcyjny

Raphael at Digital Pianism
źródło
1
Doceniam wskazanie, że istnieją 2 pliki index.php, ale co do korzyści i zastosowania implementacji wykorzystującej architekturę tego typu, nie zostały uwzględnione. O ile nie zagubię się więcej w temacie, odpowiedziałem na pytanie, przeglądając artykuły i dokumenty Alana Storma, Zenda i Symfony'ego.
Brian Ellis
jeśli chodzi o twoje ostatnie zdanie na temat dev / prod, czy możesz potwierdzić, gdzie to się dzieje? Nic takiego nie widzę
Claudiu Creanga
Jestem z @brianellis, dlaczego tak musi być? Wygląda na to, że i tak nie oszukuje przeglądarki.
ladle3000