Aplikacja "Witryna": multi-strony i routing
Framework Web-systems.pro pozwala na wykorzystanie całej dostępnej przestrzeni adresowej do tworzenia stron internetowych. Na przykład, jeśli >Web Systems Pro< jest dostępny pod adresem https://www.domain.com/, to adresy stron i sekcji serwisu opartych na nim mogą być dowolnie "w obrębie" tego adresu:
https://www.domain.com/about/,
https://www.domain.com/shop/adidas/superstar/,
https://www.domain.com/index.php?product=aeron-chair,
https://www.domain.com/blog/2011/?tag=dev, itd.
Jedynym wyjątkiem są adresy backendowe - te używane przez backend >Web Systems Pro< zawsze będą prowadziły do backendu i nie mogą być używane dla publicznej części strony.
Web-systems.pro w całości przetworzy adres przekazany mu przez przeglądarkę, dzieląc go na dwie części:
- część podstawowa: jest to adres instalacji Web-systems.pro wraz z nazwą domeny; w powyższym przykładzie jest to https://www.domain.com/.
- część wewnętrzna: jest to fragment pozostający po adresie instalacji frameworka; w powyższych przykładach jest to about/, shop/adidas/superstar/, index.php?product=aeron-chair, itp.
W zależności od tych dwóch części, sterowanie jest przekazywane do jednej lub drugiej aplikacji zgodnie z regułami routingu (routing) zdefiniowanymi w systemowym pliku routingowym wa-config/routing.php. Aplikacja "Witryna" udostępnia narzędzia do zarządzania routingiem poprzez interfejs sieciowy i zapisuje ustawienia routingu w tym pliku.
Multi-strony
(podstawowa część adresowa)
Pojedyncza instalacja Web-systems.pro pozwala na stworzenie dowolnej liczby stron internetowych działających pod różnymi domenami. Na przykład: domain1.com, subdomain.domain2.com, any-other-address.org - wszystkie te strony mogą działać w ramach jednej instalacji Web-systems.pro. Aby podłączyć nową stronę do instalacji Web-systems.pro musisz wykonać następujące czynności w aplikacji "Witryna":
a) dodaj nazwę domeny witryny:
b) skierować domenę do katalogu serwera www (na koncie hostingowym), w którym zainstalowany jest Web-systems.pro, tak aby przy otwieraniu adresu witryny w przeglądarce otwierały się strony tej instalacji frameworka. Będziesz musiał skonsultować się z dostawcą usług hostingowych, jak podłączyć nazwę domeny do swojego konta hostingowego.
Podczas dodawania nowej witryny, aplikacja "Witryna" zapisuje ją w systemowym pliku routingu wa-config/routing.php.
Routing i osiadanie aplikacji
(wewnętrzna część adresu)
Aplikacja "Witryna" pozwala na określenie dowolnego zestawu reguł routingu dla każdej witryny (domeny), które następnie pozwalają określić, która aplikacja będzie miała kontrolę.
W tym przykładzie, każdy adres w przestrzeni adresowej domain.com/shop/* zostanie przekazany aplikacji Witryna, domain.com/blog/* - aplikacji Blog, a jeśli adres nie spełnia żadnej z tych reguł, zostanie przekazany aplikacji "Witryna".
W podanym przykładzie, jeśli użytkownik wejdzie na stronę domain.com/contacts.aspx, zostanie przekierowany (za pomocą przekierowania HTTP) na stronę domain.com/contacts/, która (zgodnie z regułą domain.com/*) zostanie przetworzona przez aplikację "Witryna". W tym przykładzie contact.aspx jest traktowany przez Web-systems.pro jako ciąg znaków, a nie jako odwołanie do zewnętrznego skryptu (reguła może być określona jako dowolna: about.php, special-offers.html, index.php?params=value, itp.) Reguły mogą być określone arbitralnie. Na przykład, kiedy tworzysz regułę /about/, żaden folder about/ nie jest fizycznie tworzony na serwerze. Reguła jest tylko szablonem, który może być użyty do analizy adresów URL używanych przez odwiedzających strony internetowe.
Reguły są przetwarzane jedna po drugiej w kolejności określonej w wa-config/routing.php (i odpowiednio w ustawieniu aplikacje 'Witryna'). Jeśli napotkana zostanie reguła, która spełnia bieżące żądanie użytkownika, kontrola jest przekazywana do odpowiedniej aplikacji, a pozostałe reguły nie są analizowane. Gwiazdka (*) jest używana do dopasowania arbitralnej grupy znaków. Na przykład, reguły shop/ i shop/* różnią się od siebie, ponieważ pierwsza reguła powinna pasować tylko do domeny.com/shop/, podczas gdy druga reguła powinna pasować do każdego adresu w folderze "shop": domain.com/shop/product/phones/iphone/, domain.com/shop/about/, domain.com/shop/index.php?param=value, itd. Część adresu następująca po shop/ jest przekazywana do aplikacji, do której podpięta jest reguła routingu, a ta sama aplikacja decyduje o dalszym zachowaniu witryny (jaką stronę wyświetlić, jaką akcję wykonać).
Aplikacje, które są połączone przez różne reguły routingu są niezależne i mogą być całkowicie nieinteraktywne ze sobą. Analogią może być przypadek, w którym skrypty różnych producentów są zainstalowane w różnych folderach na serwerze. Działają one niezależnie od siebie i tworzą jedną witrynę tylko poprzez wygląd, wzajemne linki w nawigacji po stronie internetowej i ewentualną wzajemną wymianę danych.
Osady
Termin "osada" jest nieco nieformalny, ale dobrze oddaje charakter umieszczania publicznych części aplikacji w ramach strony internetowej. Rozliczając aplikację za pomocą reguły routingu, rozliczasz ją na swojej stronie internetowej. Możesz zainstalować dowolną aplikację na Web-systems.pro tylko raz i mieć kilka osad na stronie, czyli zajmować kilka podzbiorów adresowych. Przykładowo, aplikację "Blog" możesz zainstalować na swojej stronie kilka razy (używając kilku reguł) pod różnymi adresami: /blog/pl/*, /blog/en/*, /photoblog/*, itd. Co więcej, każda z tych osad będzie miała inny wygląd. Jest to możliwe dzięki temu, że każda osada ma swój własny zestaw ustawień: wybór motywu projektowego, indywidualne ustawienia aplikacji, dowolny zestaw parametrów.
$wa->apps()
Dla wygody tworzenia stron z wieloma osiedlami, można użyć tablicy zwracanej przez funkcję $wa->apps(). Według struktury tej tablicy jest tworzone główne menu nawigacyjne w większości motywów graficznych. Domyślnie tablica jest automatycznie definiowana zgodnie z regułami routingu i tym samym odzwierciedla aktualną strukturę routingu na stronie. Możesz przełączyć $wa->apps() na ręczne wykrywanie, jeśli chcesz, i nie będzie to miało żadnego wpływu na funkcjonalność strony internetowej.
0 komentarzy