====== Framework ====== ---- ===== Środowisko developerskie i produkcyjne ===== O o chodzi ?\\ Środowisko developerskie Yii2 oprócz aplikacji zawiera również szereg narzędzi przydatnych programiście. W środowisku produkcyjnym narzędzia te są zbędne i powinny być niedostępne ze względów bezpieczeństwa. W Yii2 przełączanie między tymi środowiskami jest bardzo proste.\\ Aby wrzucić pracę na serwer produkcyjny należy zmienić pliki konfiguracyjne oraz wyłączyć różne narzędzia zmieniając treść niektórych plików php.\\ Po przerzuceniu plików na serwer produkcyjny chcemy mieć znowu środowisko developerskie. {{::blogyii_003.png?200|}}\\ We wskazanych strzałką folderach znajdują się pliki konfiguracyjne będące odpowiednikiem plików konfiguracyjnych w folderach frontend i backend i common. W zależności od zainicjowanego środowiska pliki w folderach frontend, backend i common zostaną podmienione na odpowiednie pliki z folderów dev lub prod. {{::blogyii_005.png?200|}}\\ Np. w plikach main-local.php wpisujemy inną konfigurację dostępu do bazy danych dla środowiska developerskiego i inną dla środowiska produkcyjnego . Baza danych w środowisku developerskim znajduje się najczęściej na localhost więc konfiguracja w powyżej zaznaczonym pliku może wyglądać tak: {{::blogyii_006.png?500|}}\\ Natomiast ten sam plik w folderze prod będzie zawierał konfigurację bazy danych dla środowiska produkcyjnego. Np. tak: {{::blogyii_007.png?500|}}\\ W ten sam sposób można ustalić inne parametry aplikacji w innych plikach. ==== Inicjacja środowiska ==== Otwieramy konsolę (w środowisku Windows manager poleceń).\\ Przechodzimy do katalogu głównego projektu.\\ Wykonujemy polecenie init {{::blogyii_008.png?400|}}\\ Następnie wybieramy 0 lub 1 w zależności od potrzebnego nam środowiska. Czekamy chwilkę aż automat pozamienia pliki i gotowe. Tak naprawdę nie musisz zmieniać co chwila środowiska.\\ Jeśli tworząc aplikację modyfikujesz pliki niezwiązane z konfiguracją to możesz je przesłać na serwer bez zmiany środowiska.\\ To narzędzie przydaje się jeśli przerzucamy całość na serwer produkcyjny. Nie przerzucasz też wszystkich folderów. Środowisku produkcyjnemu potrzebne są foldery: {{::blogyii_010.png?200|}}\\ backend, common, frontend, vendor Pliki to mój dodatkowy folder Pliki z katalogu głównego projektu nie należą do środowiska produkcyjnego. ---- ===== Struktura folderów ===== Układ folderów mających znaczenie w wersji produkcyjnej **common** folder zawierający części wspólne dla frontu i zaplecza **config** zawiera pliki z parametrami konfiguracyjnymi - wspólne dla fontu i zaplecza **mail** zawiera pliki widoków maili ( nie używam) **models** zawiera pliki definiujące klasy modeli używane na froncie i zapleczu **backend** folder zawierający elementy potrzebne do budowy zaplecza **assets** zawiera plik konfigurujący dołączenie odpowiednich plików JavaScript i CSS **config** zawiera pliki konfigurujące parametry zaplecza **controllers** zawiera pliki definiujące klasy kontrolerów używane na zapleczu **models** zawiera pliki definiujące klasy modeli używane na zapleczu **runtime** w tym folderze tworzone są automatycznie różne pliki podczas uruchomienia aplikacji np: logi **views** zawiera podfoldery z plikami widoków, formularzy dla każdego kontrolera **web** jest to główny folder uruchomieniowy aplikacji zaplecza. Do tego folderu należy przypisać domenę (subdomenę) tak aby pozostałe foldery były poza zasięgiem serwera WWW **assets** jest to folder w którym znajduje się cache plików css js i innych używanych przez różne widgety frameworka umieszczanych w folderach o losowych nazwach. Cała zawartość folderu można usunąć. System sam go odtworzy w momencie uruchamiania aplikacji.. Należy wyczyścić ten folder jeśli zmieniamy coś w plikach css i js widgetów. **frontend** folder zawierający elementy potrzebne do budowy frontu **assets** zawiera plik konfigurujący dołączenie odpowiednich plików JavaScript i CSS **config** zawiera pliki konfigurujące parametry frontu **controllers** zawiera pliki definiujące klasy kontrolerów używane na froncie **models** zawiera pliki definiujące klasy modeli używane na froncie **runtime** w tym folderze tworzone są automatycznie różne pliki podczas uruchomienia aplikacji np: logi **views** zawiera podfoldery z plikami widoków, formularzy dla każdego kontrolera **web** jest to główny folder uruchomieniowy aplikacji frontu. Do tego folderu należy przypisać domenę (subdomenę) tak aby pozostałe foldery były poza zasięgiem serwera WWW **assets** jest to folder w którym znajduje się cache plików css js i innych używanych przez różne widgety frameworka umieszczanych w folderach o losowych nazwach. Cała zawartość folderu można usunąć. System sam go odtworzy w momencie uruchamiania aplikacji.. Należy wyczyścić ten folder jeśli zmieniamy coś w plikach css i js widgetów. Folder **vendor** , zawiera wszystkie niezbędne biblioteki frameworka.\\ W tym folderze rzadko dokonuje się zmian treści plików. \\ Mogą być instalowane w nim różne rozszerzenia.\\ Pozostałe pliki zawierają różnorodne narzędzia developerskie wspomagające tworzenie aplikacji. I nie są dołączane do wersji produkcyjnej.