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
docker-compose build
Toto by melo stahnout a nastavit vše potřebné
Sestaveni a spustení kontejnerů
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.
http://localhost:84
ukončení kontejnerů
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:
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.
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
DockerfileNGINX
Webový server s reverzní proxy s otevřeným zdrojovým kódem. Pracuje s protokoly HTTP (HTTPS).
PHP
konfigurační soubor dockerfile
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
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
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
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
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
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ů:
Nastavení cesty k projektu a uvnitř kontejneru:
Routing
VŠE SPOUŠTÍME UVNITŘ KONTEJNERU.
Výpis rout v projektu
@laravel-php:/var/www/html$ ./artisan route:list
Konfigurace routování
Výpis směrovací tabulky (router)
@laravel-php:/var/www/html$ ./artisan route:list
Nastavení se provádí v adrrsáři routes.
/routes pro web /routes/web.php
Příklady nastavení routování web.php
Route::resource('/test', 'TestController')->only(['index', 'store', 'edit', 'update', 'destroy']);
nebo
Route::resource('/test', 'TestController')->except(['create', 'show']);
Mazání cache
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
php artisan make:controller HomepageController
Controller vč. předdefinovaných metod
php artisan make:controller HomepageController --resource
Nastavení globálních proměnných
globalni variable AppServiceProvider
Databáze ORM
informace o databazi
php artisan db:show
informace o tabulce
php artisan db:table users
Vytvoří model src\app\models
php artisan make:model Product
Vytvoří model a migrační script src\app\models src\database\migrations
php artisan make:model Product -m
Migrační script migrujeme do db
php artisan migrate
Při změně migračního scriptu
php artisan migrate:refresh
Pro vrácení poslední migrace máme příkaz
php artisan migrate:rollback
Pridání indexu
$table->index('email');
Pro přejmenování indexu můžete použít renameIndex()
$table->renameIndex('email', 'mobile_no');
Pro odstranění indexu můžete použít dropIndex()
$table->dropIndex('email', 'mobile_no');
Migraci a kontroler lze vytvořit i zvlášť.
php artisan make:model Article
php artisan make:migration --create=articles create_articles_table
php artisan make:controller --model=Article ArticleController
Chcete-li vrátit zpět poslední operaci migrace.
php artisan migrate:rollback
Můžete vrátit zpět více počet migrací.
php artisan migrate:rollback --step=5
Reset vrátí zpět všechny migrace vaší aplikace.
php artisan migrate:reset