Professional Documents
Culture Documents
Spis treci
1. Instalacja Symfony w rodowisku Windows.................................................................................... 2
2. Import i konfiguracja projektu w rodowisku Netbeans IDE........................................................... 7
3. Implementacja elementw aplikacji. ............................................................................................ 11
1. Instalacja Symfony w rodowisku Windows.
Aby proces instalacji oraz inne czynnoci wymagajce uycia PHP w linii polece przebiega
sprawnie naley doda do zmiennej rodowiskowej PATH folder, w ktrym znajduje si plik
php.exe. Mona to zrobi dla caego systemu jak rwnie tylko dla aktualnie zalogowanego
uytkownika.
W zalenoci od tego czy chcemy doda interpreter PHP do zmiennej dla wszystkich uytkownikw
komputera czy tylko aktualnego uytkownika wyszukujemy zmiennej o nazwie PATH odpowiednio
na licie Zmienne systemowe lub Zmienne uytkownika dla [nazwa uzytkownika]. Dodajemy na
kocu po znaku ; ciek do folderu z plikiem php.exe. Po wybraniu OK zmiany zostan zapisane.
Jeeli linia komend bya uruchomiona przed wykonaniem powyszych czynnoci to aby zmiany byy
widoczne naley ponownie uruchomi wiersz polece.
W celu sprawdzenia czy podany efekt zosta osignity moemy wywoa funkcj php sprawdzajc
zainstalowan wersj interpretera:
Gdzie <nazwa_projektu> jest nazw projektu ( i folderu jednoczenie) a [wersja Symfony] jest
parametrem opcjonalnym okrelajcym, ktra wersja Symfony ma zosta uyta dla projektu.
Installer utworzy nowy folder a nastpnie pobierze wymagane pliki frameworka i stworzy
podstawow struktur aplikacji. W zalenoci od szybkoci komputera i cza do Internetu
operacja moe potrwa od kilkudziesiciu sekund do kilku minut.
cd symfapp
Jeeli serwer zosta uruchomiony zobaczymy informacj o adresie, pod ktrym nasza
aplikacja jest aktualnie dostpna.
1.4. Krok 3 uruchomienie aplikacji w przegldarce.
Powysze polecenie buduje statyczne elementy (CSS, JavaScript, obrazy) dla rodowiska
produkcyjnego aplikacji. Wicej tutaj: http://symfony.com/blog/new-in-symfony-2-6-smarter-assets-install-command
Po ponownym uruchomieniu serwera i odwieeniu strony grafika oraz style powinny by na miejscu.
2. Import i konfiguracja projektu w rodowisku Netbeans IDE.
Netbeans IDE v. 8.0.2
Netbeans jednak uruchamia serwer wbudowany PHP w nieco inny sposb ni komenda z
poziomu wiersza polece, wic na potrzeby laboratorium bdzie wykorzystywany
wbudowany serwer PHP uruchamiany poleceniem:
2.2. Konfiguracja projektu Symfony oraz Netbeans dla lokalnie zainstalowanego serwera
Apache.
Xampp 3.2.1
Apache 2.4.10
Naszym celem jest stworzenie wirtualnego hosta dla aplikacji co pozwala na moliwie
zbien konfiguracj rodowiska serwera lokalnego ze rodowiskiem produkcyjnym, na
ktrym aplikacja zostanie ostatecznie wdroona.
Naley uruchomi panel sterowania serwera Xampp i dla moduu Apache wybra opcj
Config a nastpnie z rozwinitej listy Apache (httpd.conf). Plik domylnie zostanie
otwarty w programie Notatnik.
Pierwsz czynnoci jest sprawdzenie czy modu przepisywanie adresw URL jest
wczony. Wyszukujemy lini LoadModule rewrite_module modules/mod_rewrite.so i
jeeli jest ona poprzedzona znakiem # usuwamy go. Znak # jest komentarzem
jednowierszowym i powoduje zignorowanie znajdujcego si za nim cigu znakw
przez interpreter pliku konfiguracyjnego.
<VirtualHost *:80>
ServerName symfapp
DocumentRoot "D:\_PROJEKTY\symfapp\web"
<Directory "D:\_PROJEKTY\symfapp\web">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
http://httpd.apache.org/docs/2.4/vhosts/examples.html
http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride
http://httpd.apache.org/docs/2.4/upgrading.html
127.0.0.1 <nazwa_wirtualnego_hosta>
W naszym przypadku
127.0.0.1 symfapp
na
Elementy aplikacji takie jak kontrolery, dodatkowe klasy PHP, widoki i media (grafika, css,
JavaScript) przechowywane s w ramach pakietw, ktre mona docza do aplikacji. Nie ma
wic centralnego miejsca na przechowywanie wszystkich elementw aplikacji. Zalet takiego
rozwizania jest jego moduowo i moliwo podzielenia wikszej aplikacji na mniejsze logiczne
elementy oraz na dodawanie lub usuwanie nowych paczek bez koniecznoci naruszania struktury
ju istniejcych.
Zakadajc, e struktura naszego projektu jest zgodna ze struktur tworzon przez instalacj
Symfony Standard Edition lokalizacja paczek wyglda nastpujco:
Utworzenie nowej paczki jest moliwe do wykonania rcznie, ale Symfony dostarcza
narzdzie do automatycznego stworzenia odpowiedniej struktury folderw i aktualizacji wpisw w
pliku app/AppKernel.php, w ktrym znajduj si instrukcje importujce paczki:
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
return $bundles;
}
Polecenie
php app/console generate:bundle
powoduje uruchomienie narzdzia. Proces podzielony jest na kilka etapw. Pierwszy krok to
nadanie przestrzeni nazw dla nowej paczki. W tym przypadku rwnie musimy trzyma si
konwencji najpierw ustalamy nadrzdn przestrze nazw dla paczki (moe bdzie ich wicej w
przyszoci), ktra moe by nawizaniem do nazwy firmy, moduu np. Blog. Nastpnie dodajemy
kolejne czony przestrzeni, jeeli wymagane jest zagniedenie. Kolejne czony oddzielamy
znakiem / oraz do ostatniego czonu musimy doda przyrostek Bundle.
Kolejny krok to nadanie przyjaznej nazwy dla naszej paczki. Po co ? W kodzie czsto
odnosimy si do nazwy paczki wic dobr praktyk jest nadanie nazwy, ktra bdzie nawizywaa
do nazwy przestrzeni utworzonej w kroku 1. Generator paczki podpowiada nam nazw na
podstawie wartoci z kroku pierwszego i w tym przypadku proponuje nazw BlogDemoBundle.
Domylne wartoci dla kolejnych polece ujte s w nawiasach [ ] a ich zatwierdzenie odbywa
si po wciniciu klawisza Enter. Aby ujednolici nazewnictwo pierwszej paczki akceptujemy
domyln warto.
Dalsze kroki uzalenione s od dokonanego przez nas wyboru. Narzdzie proponuje nam
wygenerowanie przykadowych skrawkw (ang. snippet) kodu. Domylna odpowied to no, ale
dla celw edukacyjnych podajemy odpowied yes i przeanalizujemy wygenerowan struktur.
Pozosta jeszcze ostatni krok w generatorze, ktry polega na potwierdzeniu caego procesu oraz
potwierdzeniu chci automatycznej aktualizacji naszego jdra aplikacji i routingu. Odpowiadamy
twierdzco na oba pytania. Jeeli nie pojawiy si komunikaty o bdach w procesie generowania
paczki nasza struktura folderu src powinna wyglda nastpujco:
3.2. Controller w Symfony PHP Framework.
Kontroler jest elementem modelu MVC (Model View Controller), ktry jest odpowiedzialny za
przetwarzanie da (ang. request) klientw (najczciej dania GET i POST wysyane poprzez
przegldark internetow) oraz generowanie odpowiedzi (ang. response). Odpowiedzi serwera
(na ktrym kontroler jest uruchamiany) jest najczciej HTML, ale moe to by plik graficzny,
tekst w dowolnym formacie (np. json, xml).
namespace Blog\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
Poczynajc od pocztku pliku okrelamy przestrze nazw, w ktrej klasa zostanie umieszczona,
zgodnie z przynalenoci do wczeniej utworzonego pakietu. Instrukcja use <cieka_do_klasy>
powoduje wskazanie, ktrej przestrzeni nazw chcemy uy w tym pliku/klasie.
Dalej znajduje si deklaracja i ciao klasy DefaultController ktra rozszerza (ang. extends) klas
Symfony\Bundle\FrameworkBundle\Controller\Controller.php. Ten kontroler
posiada tylko jedn funkcj o nazwie indexAction przyjmujc jeden argument o nazwie
$name. Funcja zwraca wynik dziaania DefaultController->render(), ktra jako
argumenty przyjmuje nazw pliku widoku oraz tablic zmiennych, ktra z widokiem bdzie
zcalona.