yii framework: struktura katalogów dla małych aplikacji - www.srebniak.pl
yii framework: struktura katalogów dla małych aplikacji
20 lutego 2013
Categories: Yii framework
W poprzednim wpisie poruszyłem kwestie organizacji struktury katalogów dla aplikacji pisanych w Yii. Yii framework pozwala na całkowitą dowolność w tej kwestii. W tym wpisie przedstawie krok po kroku jak stworzyć prostą aplikacje z podziałem na część dla użytkownika oraz administratora. Dodatkowo wydzielimy część wspólną dla elementów używanych we wszystkich częściach. Struktura ta sprawdza się doskonale przy małych i średnich projektach tworzonych za pomocą yii framework.
Podstawy i ogólny zarys
W tym poradniku celowo pomijam konfigurację Apacha oraz zakładam, że każdy ma już jakieś doświadczenie z Yii.
Jeżeli nie wiesz jak zainstalować apache na systemie debian, bądź masz inne pytania odnośnie artykułu zapraszam do zadawania ich w komentarzach.
Taką strukturę katalogów chcemy osiągnąć: .
|– framework
|– protected
| |– backend
| |– common
| |– frontend
|
|– public_html
Opis poszczególnych katalogów
Nazwa katalogu
framework
protected/backend
protected/frontend
protected/common
public_html
opis
Nazwa mówi sama za Siebie 🙂
Tutaj będzie cały panel administracyjny
W tym folderze umieszczamy całą aplikację dla użyszkodników
do tego folderu przenosimy część wspólną dla aplikacji
jest to folder dostępny z przeglądarki użytkownika.
Dlaczego protected będzie poza web root’em
Jest to prosta technika, która zwiększa bezpieczeństwo naszej aplikacji. Folder protected poza katalogiem public_html blokuje możliwość wykonywania plików z poziomu przeglądarki. Dodatkowym usprawnieniem jest możliwość używania projektu dla kilku domen bez powielania kodu – tylko dodajemy kolejne „public_html” oraz pliki konfiguracji.
Instalacja yii framework
Pobranie najnowszej wersji frameworku z repozytorium
W tym przykładzie pobierzemy framework z repozytorium yiisoft. Kod z repozytorium pobierzemy do katalogu /tmp a nasza docelowa aplikacja będzie znajdować się w katalogu /srv/test/.

Kod:
$ cd /tmp
$ git clone https://github.com/yiisoft/yii.git
$ cp -R yii/framework /srv/test
Po wykonaniu powyższych poleceń możemy przejść do inicjacji naszego projektu (superapp):
$ cd yii
$ ./framework/yiic webapp superapp
Powyższe polecenie wygeneruje nam podstawową strukturę aplikacji w folderze superapp. Folder protected posłuży nam za bazę dla części naszej aplikacji: common, backend oraz frontend. Foldery umieszczamy w katalogu protected w naszym docelowym projekcie znajdującym się w /srv/test/. Skopiujmy też podstawowy plik index.php oraz folder css. Ostatnie polecenie przechodzi do folderu docelowej aplikacji.
$ cd superapp
$ mkdir -p /srv/test/protected/public_html
$ cp -R protected/ /srv/test/protected/backend
$ cp -R protected/ /srv/test/protected/common
$ cp -R protected/ /srv/test/protected/frontend
$ cp protected/index.php /srv/test/public_html/
$ cp -R protected/css /srv/test/public_html/
$ cd /srv/test
Frontend
Teraz zmienimy ścieżki konfiguracji w pliku index.php, aby wskazywały plik konfiguracji dla frontend’u.
$yii=dirname(__FILE__).’/../framework/yii.php’; $config=dirname(__FILE__).’/../protected/frontend/config/main.php’;
Aby strona się poprawnie uruchomiła musimy utworzyć jeszcze 2 foldery: runtime oraz assets
$ mkdir -p protected/frontend/runtime -m u+x $ mkdir -p public_/assets -m u+x
W tym momencie jeżeli uruchomicie przeglądarkę uruchomi się wam standardowa strona yii.
Backend
Teraz pozostaje kwestia części administracyjnej – aby działała potrzebujemy utworzyć plik .htaccess o następującej treści:
Options -Indexes +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/?(.*?)$ admin.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!admin/)(.*?)$ index.php?url=$1 [QSA,L]
modeli oraz y
</IfModule>
oraz skopiowanie pliku index.php do pliku admin.php.
Po skopiowaniu pliku należy zmienić ścieżki do konfiguracji aplikacji backend
$yii=dirname(__FILE__).’/../framework/yii.php’;
$config=dirname(__FILE__).’/../protected/backend/config/main.php’;
oraz utworzyć katalog runtime
$ mkdir -p protected/backend/runtime -m u+x
Podsumowanie
Po powyższych czynnościach będą uruchamiały się dwie aplikacje pod różnymi adresami. Jednak to nie wszystko!

W kolejnym wpisie opiszę jak używać elementów umieszczonych w części wspólnej. Zajmiemy się także konfiguracją aplikacji: wprowadzimy „przyjazne” adresy url, dopracujemy konfigurację oraz przygotujemy naszą aplikację, aby można było uruchamiać kod pod różnymi domenami.

Zapraszam do komentowania!
© 2021 Więcej informacji
o mnie