Laravel Logo

# Laravel template ##### Laravel je open-source PHP framework vytvořený Taylorem Otwellem za účelem vývoje webových aplikací založených na principu architektury model-view-controller (MVC). Výhody které Laravel nabízí, jsou různé knihovny, různé způsoby pro přístup k relačním databázím. Laravel má velkou komunitu. #### Tento template je vhodné si naklonovat rovnou už v GitLabu, protože projekt už bude mít pojmenování podle vašeho přání. Součástí template je i konfigurace DOCKERU. ## Základní příkazy pro konfiguraci kontejnerů #### Build image ```sh docker-compose build ``` Toto by melo stahnout a nastavit vše potřebné #### Sestaveni a spustení kontejnerů ```sh docker-compose up -d nebo docker-compose up -d --build ``` V tuto chvili by mel byt docker projekt ready na http://localhost:84 viz soubor docker-compose.yml, kde to jde i změnit. --build používáme pro přegenerování image kontejneru. ```sh http://localhost:84 ``` #### ukončení kontejnerů ```sh docker-compose down ``` Potom je možné i na stejný port spustit jiný kontejner. ## SQL databáze a adminer Součásti konfigurace je SQL databáze a adminer. Najdeme jí na url: ```sh http://localhost:84/adminer ``` Databáze mezi kontejnery je na portu 3306 viz soubor docker-compose.yml. Není potřeba psát do připojení k databázi IP a port. Stačí název service ze souboru docker-compose.yml vč. jména root a hesla. ```sh mysqldb nebo laravel-mariadb-10.9.3 ``` Neukládejte na Gitlab soubory DB, pouze sql dump. Jedná se o adresář ./data/database, který musí zůstat git ignore. Je možné si databázi přes adminer zálohovat a uložit do projektu jako soubor sql pro případ budoucího obnovení. ## Seznam kontejnerů v aplikaci #### Nginx konfigurační soubor dockerfile ```sh DockerfileNGINX ``` Webový server s reverzní proxy s otevřeným zdrojovým kódem. Pracuje s protokoly HTTP (HTTPS). #### PHP konfigurační soubor dockerfile ```sh DockerfilePHP ``` PHP (rekurzivní zkratka PHP: Hypertext Preprocessor, česky „PHP: Hypertextový preprocesor“, původně Personal Home Page) je skriptovací programovací jazyk. Je určený především pro programování dynamických internetových stránek a webových aplikací například ve formátu HTML, XHTML či WML. PHP lze použít i k tvorbě konzolových a desktopových aplikací. Pro desktopové použití existuje kompilovaná forma jazyka. #### MySQL - MariaDB konfigurační soubor dockerfile ```sh DockerfileMYSQL ``` MariaDB je relační databáze, která je komunitou vyvíjenou nástupnickou větví (tzv. „forkem“) MySQL. Hlavním důvodem k vytvoření této větve bylo udržení licence svobodného softwaru GNU GPL. Iniciativa, díky které tato větev vznikla, pochází od původních vývojářů MySQL, kteří se obávali o další osud a směřování tohoto softwaru po jeho odkoupení společností Oracle.[ #### Redis konfigurační soubor dockerfile ```sh DockerfileREDIS ``` Redis je úžasně jednoduché a při tom velmi mocné NoSQL in-memory key-value úložiště. Potřebujete akcelerovat vaší aplikaci jednoduše a při tom využít distribuované zdroje a současně mít redundanci nebo transakční ochranu? Tohle je úkol pro Redis. #### Meilisearch konfigurační soubor dockerfile ```sh DockerfileMELISEARCH ``` Popisují se jako „otevřený zdroj, neuvěřitelně rychlý a hyperrelevantní vyhledávač, který zlepší váš zážitek z vyhledávání. Aktuální alternativy – Elasticsearch a Algolia. #### Selenium Standalone Chrome - Selenium Docker konfigurační soubor dockerfile ```sh DockerfileCHROME ``` Spouštění testů Selenium v kontejnerech Docker podporuje provádění kontrol kódu agilnější rychlostí s kódem konvenčnější kvality. Výsledkem je produkt vynikající kvality. #### MailHog konfigurační soubor dockerfile ```sh DockerfileMAILHOG ``` Potřebujete slepý vývojový SMTP server, který zachytí maily z aplikace či webu, ale už je nepředá dále? Pak vyzkoušejte MailHog. Funguje prakticky všude, je zadarmo a má webové rozhraní pro prohlížení zachycených zpráv. ## Nastavení xdebug Nastavení debug a portů: ![](docker/img/img1.png) Nastavení cesty k projektu a uvnitř kontejneru: ![](docker/img/img2.png) ## Routing VŠE SPOUŠTÍME UVNITŘ KONTEJNERU. Výpis rout v projektu ```sh @laravel-php:/var/www/html$ ./artisan route:list ``` #### Konfigurace routování Výpis směrovací tabulky (router) ```sh @laravel-php:/var/www/html$ ./artisan route:list ``` Nastavení se provádí v adrrsáři routes. ```sh /routes pro web /routes/web.php ``` Příklady nastavení routování web.php ```sh Route::resource('/test', 'TestController')->only(['index', 'store', 'edit', 'update', 'destroy']); ``` nebo ```sh Route::resource('/test', 'TestController')->except(['create', 'show']); ``` ## Mazání cache ```sh php artisan config:cache php artisan config:clear php artisan route:clear php artisan view:clear php artisan view:cache ``` ## Vytvoření Controlleru Samostatný Controller ```sh php artisan make:controller HomepageController ``` Controller vč. předdefinovaných metod ```sh php artisan make:controller HomepageController --resource ``` ## Nastavení globálních proměnných ```sh globalni variable AppServiceProvider ```