W porównaniu do około 10 lat temu zauważyłem zmianę na frameworki wykorzystujące styl routingu, który oddziela ścieżkę URL od systemu plików. Zwykle odbywa się to za pomocą wzorca kontrolera frontowego.
Mianowicie, kiedy wcześniej ścieżka URL była mapowana bezpośrednio do systemu plików, a zatem odzwierciedlała dokładne pliki i foldery na dysku, obecnie rzeczywiste ścieżki URL są programowane tak, aby były kierowane do określonych klas poprzez konfigurację i jako takie nie odzwierciedlają już pliku folder systemowy i struktura plików.
Pytanie
Jak i dlaczego stało się to powszechne? W jaki sposób i dlaczego zdecydowano, że „lepiej” do tego stopnia, że po raz pierwszy powszechnie stosowane podejście bezpośrednie do pliku zostało skutecznie porzucone?
Inne odpowiedzi
Podobna odpowiedź dotyczy nieco trasy i niektórych zalet i wad: w przypadku frameworków PHP, dlaczego używana jest koncepcja „trasy”?
Ale nie dotyczy to historycznych aspektów zmian, ani tego, jak i dlaczego ta zmiana stopniowo następowała, w przypadku, gdy wszelkie nowe projekty w dzisiejszych czasach w zasadzie używają tego nowego stylu stylu routingu, a bezpośrednie przesyłanie do pliku jest przestarzałe lub zaniechane.
Ponadto większość wspomnianych zalet i wad nie wydaje się na tyle znacząca, aby uzasadniać taką globalną zmianę. Jedyną korzyścią, jaką widzę, powodując tę zmianę, może być ukrywanie systemu plików / folderów przed użytkownikiem końcowym, a także brak ?param=value¶m2=value
, co sprawia, że adresy URL wyglądają na odrobinę czystsze. Ale czy to był jedyny powód zmiany? A jeśli tak, to dlaczego były te powody to?
Przykłady:
Najbardziej znam frameworki PHP i wiele popularnych współczesnych frameworków korzysta z tego podejścia odsprzęgania routingu. Aby działało, skonfiguruj przepisywanie adresów URL w Apache lub podobnym serwerze WWW, w którym funkcje aplikacji internetowych zwykle nie są już uruchamiane przez ścieżkę adresu URL bezpośrednio do pliku.
Zend Expressive
https://docs.zendframework.com/zend-expressive/features/router/aura/
https://docs.zendframework.com/zend-expressive/features/router/fast-route/
https: //docs.zendframework. com / zend-expressive / features / router / zf2 /Zend Framework
https://docs.zendframework.com/zend-mvc/routing/
Laravel
https://laravel.com/docs/5.5/routing
CakePHP