0 follower

Jazda próbna z Yii

W części tej napiszemy jak utworzyć szkielet aplikacji, który będzie stanowić nasz punkt startowy. Dla uproszczenia, zakładamy, że główny katalog naszego serwera to /wwwroot a odpowiadający mu adres URL to http://www.example.com/.

1. Instalacja Yii

Na samym początku zainstalujemy framework Yii. W tym celu pobierz plik z wydaniem Yii (wersja 1.1.1 lub nowsze) spod adresu www.yiiframework.com i rozpakuj go do katalogu /wwwroot/yii. Upewnij się jeszcze raz, że istnieje folder /wwwroot/yii/framework.

Wskazówka: framework Yii może zostać zainstalowany w dowolnym miejscu systemu plików, niekoniecznie w folderze sieci Web. Jego katalog framework zawiera cały kod frameworku i jest jedynym wymaganym folderem frameworku podczas wdrażania aplikacji napisanej w Yii. Pojedyncza instalacja Yii może być używana przez wiele aplikacji.

Po zainstalowaniu Yii, otwórz okno przeglądarki i wpisz adres URL http://www.example.com/yii/requirements/index.php. Pokaże on dostarczoną wraz z Yii stronę pozwalającą sprawdzić wymagania. Dla naszego blogu, poza minimalnymi wymaganiami stawianymi Yii, potrzebujemy włączyć rozszerzenia PHP pdo oraz pdo_sqlite by móc używać bazy danych SQLite.

2. Tworzenie szkieletu aplikacji

Następnie przy użyciu narzędzia yiic utworzymy szkielet aplikacji w katalogu /wwwroot/blog. Narzędzie yiic jest narzędziem wiersza poleceń, dostarczonym wraz z wydaniem Yii. Może zostać użyte do wygenerowania kodu aby ograniczyć wykonywanie pewnych powtarzających się zadań.

Otwórz okno wiersza poleceń oraz wywołaj następującą komendę:

% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
......

Wskazówka: W celu wykorzystania narzędzia yiic w sposób pokazany powyżej program CLI PHP musi się znajdować w ścieżce poleceń. Jeśli tak nie jest, następująca komenda może zostać użyta w miejsce powyższej:

ścieżka/do/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog

Aby wypróbować aplikację, którą właśnie stworzyliśmy, otwórz przeglądarkę i przejdź do adresu http://www.example.com/blog/index.php. Powinniśmy zobaczyć, że nasza szkieletowa aplikacja posiada już cztery w pełni funkcjonalne strony: stronę domową, stronę o nas, stronę kontaktową oraz stronę logowania.

W dalszej części, pokrótce opiszemy co znajduje się w właśnie stworzonym szkielecie aplikacji.

Skrypt wejściowy

Mamy plik skryptu wejściowego /wwwroot/blog/index.php, który posiada następującą zawartość:

<?php
$yii='/wwwroot/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
 
// usuń następującą linię jeśli pracujesz w trybie produkcyjnym
defined('YII_DEBUG') or define('YII_DEBUG',true);
 
require_once($yii);
Yii::createWebApplication($config)->run();

Jest to jedyny skrypt, do którego internauci mają dostęp. Skrypt najpierw załącza plik inicjalizacyjny yii.php. Następnie tworzy instancję aplikacji z określoną konfiguracją i uruchamia aplikację.

Główny katalog aplikacji

Mamy również główny katalog aplikacji /wwwroot/blog/protected. Większość naszego kodu i danych znajdzie się w tym katalogu, dlatego więc nie powinien on być udostępniony dla internautów. Dla serwera httpd Apache, umieszczamy w tym miejscu plik .htaccess z następującą zawartością:

deny from all

Dla pozostałych serwerów informacje o tym jak ochronić katalog przed dostępem z zewnątrz przez internautów można znaleźć w odpowiadających im podręcznikach.

3. Działanie aplikacji (ang. Application Workflow)

Aby pomóc zrozumieć w jaki sposób Yii działa, opiszemy ogólnie przebieg działania aplikacji w naszym szkielecie aplikacji podczas gdy użytkownik żąda dostępu do strony kontaktowej:

  1. Użytkownik zażądał adresu URL http://www.example.com/blog/index.php?r=site/contact;
  2. Skrypt wejściowy jest wykonywany przez serwer sieciowy aby przetworzyć żądanie.
  3. Instancja aplikacji jest tworzona i konfigurowana początkowymi wartościami określonymi w pliku konfiguracyjnym aplikacji /wwwroot/blog/protected/config/main.php;
  4. Aplikacja dzieli żądanie na kontroler oraz akcję kontrolera. Dla żądania strony kontaktowej, aplikacja dzieli żądanie na kontroler site oraz akcję contact (metoda actionContact w /wwwroot/blog/protected/controllers/SiteController.php);
  5. Aplikacja tworzy kontroler site pod postacią instancji SiteController a następnie uruchamia go;
  6. Instancja kontrolera SiteController wykonuje akcję contact poprzez wywołanie metody kontrolera actionContact();
  7. Metoda actionContact generuje internaucie widok o nazwie contact. Wewnętrznie dzieje się to poprzez załączenie pliku widoku /wwwroot/blog/protected/views/site/contact.php i osadzeniu wyniku w pliku układu /wwwroot/blog/protected/views/layouts/column1.php.

Found a typo or you think this page needs improvement?
Edit it on github !