Laravel jest frameworkiem na licencji OpenSource pozwalającym tworzyć aplikacje webowe korzystające z mechanizmu MVC (Symfony Model-View-Controller). To bardzo popularne rozwiązanie cenione przez developerów na całym świecie głównie za możliwość błyskawicznego tworzenia i uruchamiania aplikacji.
W środowisku Laravel kod samego frameworka jest odseparowany od kodu developera, a każdy komponent może być łatwo rozbudowywany. Rozwiązanie wspiera pracę z wieloma bazami danych, pozwala wysyłać notyfikacje różnymi kanałami (mail, slack) i wspiera technologię websocketów na potrzeby tworzenia prawdziwie interaktywnych aplikacji.
Instalacja frameworka Laravel na platformie UniCloud
1. Przejdź do panelu swojej usługi UniCloud i zainstaluj framework Laravel z katalogu aplikacji.
2. W oknie instalacji podaj nazwę środowiska i nazwę projektu.
3. Instalacja może zająć chwilę.
4. Po jej zakończeniu możesz otworzyć domyślną stronę nowego projektu we Frameworku korzystając z odpowiedniego przycisku.
5. Strona startowa zawiera kilka podstawowych informacji związanych z pracą we frameworku Laravel.
Nowy projekt w Laravel
Nowy projekt w środowisku Laravel będzie zupełnie niezależny od tego, który został uruchomiony wraz z instalacją środowiska.
1. Dodaj węzeł silnikiem baz danych do środowiska Laravel. Aby to zrobić, kliknij ikonkę Zmień topologię środowiska i dodaj węzeł bazodanowy, np. MySQL.
Ważne: Jeśli zdecydujesz się użyć klastra MariaDB/MySQL z ProxySQL, musisz wybrać określone wersje silników: MariaDB w wersji co najmniej 10.2 lub MySQL w wersji co najmniej 5.7.
Na tym ekranie ustaw odpowiednie ilości Cloudletów dla skalowania pionowego i zastosuj zmiany. Po utworzeniu węzła z bazą danych, pojawi się on w szczegółach Twojego środowiska. Dane dostępowe do bazy otrzymasz na adres e-mail.
2. Możesz zaoszczędzić czas korzystając z gotowego skryptu newdb-project.sh. Jest on dostępny w katalogu głównym, zaraz po instalacji środowiska. Możesz go także pobrać z tego adresu. Skrypt wykona następujące czynności:
- utworzy nowy projekt Laravel,
- utworzy bazę danych z tabelami i przykładowymi danymi,
- przygotuje formularz do wprowadzania danych,
- wprowadzi odpowiednie przekierowania do pliku web.php,
- wyświetli danych z tabel w bazie na ekranie startowym projektu,
- doda przycisk „Zastąp URLe” do strony startowej projektu w cełu łatwej podmiany przykładowych danych w bazie projektu.
3. Aby utworzyć nowy projekt połączony z bazą danych, potrzebujesz konsoli – możesz skorzystać z klienta WebSSH wbudowanego w panelu usługi UniCloud. Po zalogowaniu wykonaj polecenia:
~ $ cd webroot/ROOT/
~ /webroot/ROOT $ ./newdb-project.sh root
Skrypt poprosi o podanie kilku wartości konfiguracyjnych, m.in. :
- nazwa projektu: nazwa musi zaczynać się wielką literą,
- host (serwer) bazy danych (np. my463543.unicloud.pl),
- nazwę bazy danych (w powyższym przykładzie wpisaliśmy: root – zastąp tę nazwę właściwą dla swojego węzła),
Jeśli stworzyłeś klaster bazodanowy (master-master, lub klaster galera z replikacją), możesz zapewnić swojej usłudze pracę w trybie HA (high availability) korzystając z usługi DNS Round Robin. W tym celu potrzebujesz utworzyć tzw. warstwy nazw (https://docs.jelastic.com/container-dns-hostnames#layer-hostnames) jako punkty wejściowe do węzłów, np.:
- sqldb.laravel.jelastic.cloud (dla aplikacji z pojedynczą bazą danych)
- proxy.laravel.jelastic.cloud (dla aplikacji, gdzie działać będzie lod balancer dla serwera SQL).
Kolejność adresów IP będzie cyklicznie zmieniana, tak aby zapewnić równy rozkład obciążenia pomiędzy wszystkimi węzłami w klastrze bazodanowym.
4. Po zakończeniu pracy skryptu możesz przejść do strony głównej projektu korzystając z adresu w postaci: http://<domain>/<Myproject>/public/
Odnośniki w naszym nowym projekcie zostały uzupełnione przykładowymi danymi, które skrypt załadował automatycznie. Możesz zmienić te adresy bezpośrednio w bazie danych projektu.
Własny projekt / aplikacja w Laravel
Po przygotowaniu środowiska Laravel możemy przystąpić do tworzenia pierwszej, własnej aplikacji. W tym celu potrzebujemy zestawić połączenie z naszym lokalnym komputerem przy użyciu serwera GIT oraz wbudowanej w UniCloud technologii automatycznego wdrażania aplikacji. W przykładzie poniżej posłużymy się komputerem z systemem Linux.
1. Utwórz nowe repozytorium na GitHub i nadaj mu nazwę (np. MyprojectCICD).
2. Sklonuj repozytorium do systemu na komputerze lokalnym poleceniem:
~$ git clone https://github.com/user/MyprojectCICD
3. Skopiuj zawartość katalogu Myproject utworzonego na serwerze UniCloud do repozytorium MyprojectCICD.x
- Zaloguj się do serwera aplikacji poprzez konsolę SSH i wykonaj poniższe polecenia, aby utworzyć odpowiednie archiwum tar:
~$ cd ~/webroot/ROOT/Myproject
~/webroot/ROOT/Myproject$ tar -cf myproject.tar
- Pobierz archiwum myproject.tar na komputer lokalny
- wypakuj zawartość pobranego pliku do katalogu z repozytorium na Twoim komputerze korzystając z polecenia:
~/Downloads $ tar -xf myproject.tar -C /home/user/MyprojectCICD
4. Wypchnij zmiany repozytorium na GitHub poleceniem:
~/Downloads $ cd /home/user/MyprojectCICD
~/MyprojectCICD $ git add -f .
~/MyprojectCICD $ git commit -am “All files of Myproject added to repository”
~/MyprojectCICD $ git push
5. Kliknij na ikonkę ‘Wyślij do serwera aplikacyjnego Git/SVN’ , aby skonfigurować powiązanie. Szczegóły konfiguracji znajdziesz w dokumentacji Jelastic pod tym adresem: https://docs.jelastic.com/git-svn-auto-deploy
Po kliknięciu przycisku, katalog root/ zostanie wyczyszczony, a jego zawartość uzupełniona danymi z repozytorium projektu MyprojectCICD. Lokalny projekt w Laravel został zsynchronizowany z projektem w chmurze i od tej pory jest już dostępny pod nowym adresem, np.: http://laravel.jelastic.cloud/public
Od tej pory możesz kontynuować tworzenie aplikacji na lokalnym komputerze, zapisywać i wysyłać zmiany na GitHub. Platforma UniCloud będzie automatycznie pobierała zmiany i wyświetlała zawsze najbardziej aktualną wersję aplikacji. Wystarczy odświeżyć stronę w przeglądarce.
To krótkie wprowadzenie do rozpoczęcia pracy z frameworkiem Laravel dla użytkowników platformy UniCloud. Nie masz jeszcze konta na naszej platformie?