Laravel
Apžvalga
Laravel yra PHP žiniatinklio aplikacijų karkasas su išraiškinga, elegantiška sintakse. Šis vadovas padės jums įdiegti Laravel aplikaciją NStrim platformoje nuo pradžios iki pabaigos.
Greitas startas
Sukurkite repozitoriją iš šablono
Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite Laravel šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".
Klonuokite savo repozitoriją
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Įdiekite priklausomybes
composer install
Sukonfigūruokite aplinką
Nukopijuokite pavyzdinį aplinkos failą ir sukonfigūruokite duomenų bazę (žr. išsamias instrukcijas žemiau):
cp .env.example .env
php artisan key:generate
Paleiskite migracijas ir įkelkite
php artisan migrate
git add .
git commit -m "Initial setup"
git push origin main
Vietinis kūrimas su Docker
Jei vietoje neturite įdiegto PHP, galite naudoti Docker Laravel komandoms vykdyti. Projekte yra Dockerfile, kuris nustato viską, ko reikia.
Reikalavimai
Įdiekite Docker Desktop savo operacinei sistemai (Windows, Mac arba Linux).
Komandų vykdymas su Docker
Vietoj to, kad php artisan migrate vykdytumėte tiesiogiai, paleidžiate ją Docker konteineryje:
# Sukurkite Docker atvaizdą (reikia tik kartą)
docker build -t laravel-app .
# Paleiskite bet kurią artisan komandą
docker run --rm laravel-app php artisan migrate
# Paleiskite composer install
docker run --rm -v $(pwd):/var/www/html laravel-app composer install
# Interaktyvi konteinerio terpė (shell)
docker run --rm -it -v $(pwd):/var/www/html laravel-app bash
Duomenų bazės konfigūracija
NStrim platforma jums suteikia MySQL/MariaDB duomenų bazę. Norėdami prisijungti, turite sukonfigūruoti savo .env failą su teisingais duomenų bazės prisijungimo duomenimis.
Kodėl konfigūruoti duomenų bazę?
Laravel naudoja .env failą aplinkai būdingai konfigūracijai saugoti. Pagal numatytuosius nustatymus šablonas naudoja SQLite (failu pagrįstą duomenų bazę), tačiau NStrim teikia MySQL geresniam našumui ir suderinamumui su realiais scenarijais.
Žingsnis po žingsnio konfigūracija
Atidarykite .env failą
Atidarykite .env failą savo projekto šaknyje su kodo redaktoriumi.
Suraskite duomenų bazės skiltį
Ieškokite šių eilučių (paprastai apie 23 eilutę):
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Atnaujinkite savo prisijungimo duomenimis
Pakeiskite valdymo skydelyje matomais prisijungimo duomenimis:
DB_CONNECTION=mysql
DB_HOST=db.<session-domain>
DB_PORT=3306
DB_DATABASE=<your-username>
DB_USERNAME=<your-username>
DB_PASSWORD=<your-password>
student01). Tikslioms reikšmėms patikrinkite valdymo skydelio prisijungimo duomenų skiltį.Konfigūracijos pavyzdys
Jei jūsų vartotojo vardas yra student01, o sesijos domenas demo.nstrim.app:
DB_CONNECTION=mysql
DB_HOST=db.demo.nstrim.app
DB_PORT=3306
DB_DATABASE=student01
DB_USERNAME=student01
DB_PASSWORD=your-password-from-dashboard
Migracijų vykdymas
Migracijos yra Laravel būdas kurti duomenų bazės lenteles. Sukonfigūravę duomenų bazę, paleiskite migracijas, kad sukurtumėte reikiamas lenteles:
php artisan migrate
Jei reikia atstatyti ir paleisti visas migracijas iš naujo (tai ištrins visus duomenis):
php artisan migrate:fresh
Norėdami paleisti migracijas su pradiniais duomenimis (jei jūsų projekte yra seederių):
php artisan migrate:fresh --seed
Projekto struktūra
Kur yra failai:
├── app/ # Aplikacijos kodas
│ ├── Http/
│ │ └── Controllers/ # Čia yra jūsų valdikliai
│ └── Models/ # Eloquent modeliai
├── config/ # Konfigūracijos failai
├── database/
│ ├── migrations/ # Duomenų bazės migracijos
│ └── seeders/ # Duomenų bazės seederiai
├── public/ # Vieši resursai (CSS, JS, paveikslėliai)
├── resources/
│ └── views/ # Blade šablonai
├── routes/
│ └── web.php # Web maršrutai (URL → Valdiklis)
├── .env # Aplinkos konfigūracija (DB ir kt.)
└── composer.json # PHP priklausomybės
Įprastos užduotys
Naujo valdiklio kūrimas
php artisan make:controller ProductController
Naujo modelio su migracija kūrimas
php artisan make:model Product -m
Maršruto pridėjimas
Redaguokite routes/web.php:
Route::get('/products', [ProductController::class, 'index']);
Talpyklos valymas
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Naudingos komandos
php artisan serve
Paleisti vietinį kūrimo serverį
php artisan migrate
Vykdyti duomenų bazės migracijas
php artisan migrate:status
Patikrinti migracijų būseną
php artisan make:controller
Sukurti naują valdiklį
php artisan make:model -m
Sukurti modelį su migracija
php artisan route:list
Išvardyti visus registruotus maršrutus
php artisan tinker
Interaktyvi PHP terpė testavimui
Trikčių šalinimas
SQLSTATE[HY000] [2002] Connection refused
Priežastis: Duomenų bazės serveris yra neteisingas arba duomenų bazės serveris nepasiekiamas.
Sprendimas: Patikrinkite, ar DB_HOST jūsų .env faile sutampa su valdymo skydelio duomenų bazės serveriu (paprastai db.<session-domain>).
SQLSTATE[HY000] [1045] Access denied for user
Priežastis: Neteisingas vartotojo vardas arba slaptažodis.
Sprendimas: Du kartus patikrinkite, ar DB_USERNAME ir DB_PASSWORD tiksliai atitinka tai, kas rodoma valdymo skydelyje. Slaptažodžiuose svarbi raidžių registras!
SQLSTATE[HY000] [1049] Unknown database
Priežastis: Duomenų bazės pavadinimas neegzistuoja.
Sprendimas: Patikrinkite, ar DB_DATABASE nustatytas į jūsų vartotojo vardą (pvz., student01). Jūsų duomenų bazė iš anksto sukurta tuo pačiu pavadinimu kaip ir jūsų vartotojo vardas.
No application encryption key has been specified
Priežastis: Trūksta APP_KEY .env faile.
Sprendimas: Paleiskite php artisan key:generate, kad sugeneruotumėte naują raktą.
Class 'App\Http\Controllers\...' not found
Priežastis: Automatinis krovimas nežino apie jūsų naują klasę.
Sprendimas: Paleiskite composer dump-autoload, kad iš naujo sugeneruotumėte automatinį krovimą.
Page shows old content after changes
Priežastis: Laravel talpina rodinius arba konfigūraciją.
Sprendimas: Išvalykite visas talpyklas:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
500 Server Error po diegimo
Priežastis: Paprastai konfigūracijos problema arba trūkstamos priklausomybės.
Sprendimas: Patikrinkite, ar:
.envfailas egzistuoja ir turi teisingas reikšmes- APP_KEY yra nustatytas (paleiskite
php artisan key:generate) - Visos priklausomybės įdiegtos (
composer install) - Duomenų bazės prisijungimo duomenys yra teisingi
Duomenų bazės patikrinimas
Jūs galite pasiekti phpMyAdmin, kad vizualiai valdytumėte duomenų bazę. Spustelėkite MySQL mygtuką savo valdymo skydelyje, kad atidarytumėte phpMyAdmin. Prisijunkite tais pačiais prisijungimo duomenimis, kurie rodomi valdymo skydelyje.
Iš phpMyAdmin galite:
- Peržiūrėti visas migracijų sukurtas lenteles
- Naršyti ir tiesiogiai redaguoti duomenis
- Vykdyti pasirinktines SQL užklausas
- Eksportuoti / importuoti duomenų bazės duomenis
Diegimo eiga
Kiekvieną kartą, kai įkeliate kodą į Git, jūsų aplikacija automatiškai įdiegiama:
Jūsų įdiegtos aplikacijos URL atitinka šį formatą:
https://<your-subdomain>-<repo-name>.<session-domain>
Pavyzdys: https://student01-module-a.demo.nstrim.app