Miesięcznik informatyków i menedżerów IT sektora publicznego

Paweł Ziółkowski

Budowanie aplikacji z frameworkiem Laravel

PROGRAMOWANIE Nie ma potrzeby, aby samodzielnie pisać cały kod aplikacji. Możemy skorzystać z pomocy w postaci frameworka, który dostarczy nam najważniejsze komponenty, a także zapewni, że kod będzie zgodny ze standardami.

Obsługa rejestracji, logowania i zarządzania użytkownikami, komunikacja z wieloma bazami danych (również z wieloma technologami), wysyłka e-maili i czytelny kod – to tylko niektóre korzyści oferowane przez framework Laravel. Jest to obecnie najpopularniejszy framework języka PHP.

Konfiguracja środowiska

Laravel do działania potrzebuje kilku dodatków. Najważniejsze to interpreter języka PHP, baza danych, aplikacja do instalowania zewnętrznych bibliotek oraz (opcjonalnie) serwer WWW. Pracę z frameworkiem będziemy wykonywali w systemie Linux Debian (w wersji 10) zainstalowanym jako system wirtualny.

Instalację pakietów potrzebnych rozpoczynamy od polecenia aktualizacji list z pakietami dla Debiana (apt-get update). Następnie instalujemy serwer WWW Apache, który znajduje się w pakiecie Apache2, wykonując polecenie apt-get install apache2 -y (opcja -y odpowiada za udzielenie z góry zgody na instalację dodatkowych pakietów wymaganych przez Apache2). Po instalacji sprawdzamy status usługi w terminalu poleceniem systemctl status apache2 oraz otwierając stronę hosta w przeglądarce. Pliki konfiguracyjne Apache znajdziemy w katalogu /etc/apache2.

Kolejny instalowany pakiet dla Laravela do interpreter języka PHP. Dokumentacja frameworka dla wersji 6 informuje (itwa.pl/i9),

że wymagany jest interpreter obsługujący minimum wersję 7.2 języka PHP oraz rozszerzenia (np. JSON dla PHP). Wywołanie komendy apt-get install php phpunit openssl -y zainstaluje nam wskazane pakiety wraz z pozostałymi wymaganymi. Po instalacji restartujemy serwer Apache poleceniem systemctl restart apache2. Aby przetestować ustawienia PHP wraz z jego rozszerzeniami, tworzymy plik index.php w folderze, z którego serwowane są domyślnie pliki (w ustawieniach serwera WWW, w pliku /etc/apache2/sites-enabled/000-default.conf znajduje się opcja DocumentRoot, gdzie wskazany jest folder, z którego będą serwowane pliki). Nowy plik php będzie wywoływać tylko funkcję phpinfo(). Po otwarciu strony hosta będziemy mogli odczytać naszą konfigurację PHP wraz z jego rozszerzeniami. Dane z aplikacji będziemy przechowywać w bazie MySQL, którą wystarczy zainstalować z pakietu default-mysql-server.

Menedżer Composer

Ostatnim ważnym elementem Laravela jest menedżer zależności, z którego korzysta framework oraz programista. Jego zadaniem jest instalować, aktualizować i zarządzać pakietami w podobny sposób, jak to robi apt-get w Linuksie lub NPM dostarczany z NodeJS. Laravel korzysta z menedżera Composer (getcomposer.org). Instalacja polega na wykonaniu w terminalu kilku linijek kodu, które są podane w sekcji Download na stronie Composera. Dodatkowy opis oraz możliwe parametry instalacji znajdziemy na stronie z dokumentacją – itwa.pl/ih. Po instalacji możemy skopiować plik composer.phar do jednego z katalogów, który znajduje się w zmiennej PATH, np. mv composer.path /usr/local/bin/composer. Dzięki temu będziemy mogli uruchamiać menedżera z każdego katalogu w systemie, bez konieczności podawania pełnej ścieżki do niego. Na koniec możemy wywołać polecenie composer i sprawdzić, czy został poprawnie uruchomiony. Powinniśmy zobaczyć opis programu oraz pomoc.

Aby skorzystać z zainstalowanego narzędzia, budujemy nową stronę. Na początek tworzymy nowy katalog poleceniem mkdir /var/www/html/comp. Edytujemy ustawienie serwera Apache (lub dodajemy nowy host wirtualny) w pliku /etc/apache2/sites-enabled/000-default.conf przy użyciu opcji DocumentRoot, aby wskazywał nowy folder. W katalogu projektu wywołujemy polecenie composer init i odpowiadamy na kilka pytań prezentowanych w terminalu. Nazwa pakietu, projektu to domyślnie nazwa użytkownika i katalog, w którym pracujemy. Na koniec otrzymujemy plik composer.json.

Composer oferuje gotowe projekty i biblioteki. Narzędzia dostępne są na stronie packagist.org. Repozytorium służy menedżerowi do pobierania i aktualizowania paczek w naszym projekcie. Jeżeli chcielibyśmy skorzystać np. z biblioteki matematycznej MathPHP (itwa.pl/ia), należy stosować się do podanej na stronie instrukcji instalacji. Możemy edytować plik composer.json i dodać wpis w polu require, a następnie kazać Composerowi pobrać i zainstalować wszystkie elementy z tego pola poleceniem install. Inna opcja to wykonanie w terminalu polecenia composer require markrogoyski/math-php:0.*, które doda za nas wpis w pliku json. Wykonanie polecenia instalacji będzie skutkowało również utworzeniem kolejnego pliku – composer.lock. W nim będą znajdować się aktualnie zainstalowane wersje dodatkowych paczek w naszym projekcie. W pierwotnym pliku composer.json określiliśmy po dwukropku (znajduje się za nazwą paczki), że chcemy zainstalować wersję 0.* (gwiazdka zastępuje każdy znak). Composer pobiera dla nas najnowszą, konkretną wersję i umieszcza jej oznaczenie w pliku lock. Plik ten jest wykorzystywany, jeżeli chcemy udostępnić swój projekt innym programistom.

Tworzenie klas

Aby skorzystać z pobranej biblioteki, niezależnie od wybranego sposobu instalacji przez Composera, musimy w pliku index.php z katalogu comp dodać dwie linie kodu. Pierwsza (require_once(__DIR__ . '/vendor/autoload.php');) to automat do wyszukiwania i dołączania plików z zainstalowanych bibliotek. Kolejna (use Math­PHP\Algebra;) informuje interpreter PHP, że w tym pliku (index.php) będziemy korzystali z klasy Algebra w przestrzeni nazw (namespace) MathPHP. Uprzednio dodany kod autoload odnajdzie za nas plik z klasą Algebra w odpowiednim katalogu. Na naszej stronie wyświetlimy dwie informacje, wykorzystując dodany pakiet. Pierwszą z nich będą miejsca zerowe funkcji kwadratowej, a drugą największy wspólny dzielnik dwóch liczb.

Dzięki Composerowi udało nam się skorzystać z kodu innego programisty bez większego wysiłku. Dużą zaletą jest automatyczne wyszukiwanie odpowiednich plików z funkcjami poprzez powiązanie przestrzeni nazw ze strukturą katalogów w zainstalowanym pakiecie. Composer utworzył dla nas, w folderze projektu, katalog vendor, w którym znajduje się wspominany i dołączany plik autoload, a także każdy zainstalowany przez nas pakiet. Pobrany pakiet MathPHP znajduje się w katalogu markrogoyski, a z kolei w nim – folder math-php. Nazwy te odpowiadają nazwie pakietu z pliku composer.json (lub polecenia require). Dalej widzimy folder src, w którym znajdują się wszystkie pliki pakietu. Taka struktura katalogów nie jest przypadkowa. Została ustanowiona jako standard pod nazwą PSR-4 (Autoloading Standard). Definiuje on, jaką strukturę powinien mieć projekt, aby odpowiednio można było mapować przestrzenie nazw (polecenie use w pliku index.php) na nazwy plików. Pełną listę wszystkich standardów PSR można znaleźć na stronie itwa.pl/ib.

[...]

Autor jest absolwentem Uniwersytetu Ekonomicznego we Wrocławiu, pracuje jako informatyk w Urzędzie Gminy w Miękini.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej