Skip to content

Laravel dolazi zajedno sa Bootstrap CSS frejmvorkom. Svi resursi bi po pravilu trebalo da idu u resources direktorijum (a ne direktno u public) nakon čega se rekompajliraju i premeštaju u public. Tako se npr. SASS nalazi u resources/assets/sass koji se kasnije kompajlira u CSS.

Komandom

npm install

najpre instaliramo node.js zavisnosti. Da bismo kompajlirali SASS kucamo

npm run dev

Da ne bismo kod svake promene resursa morali ovo da radimo, možemo da ga pokrenemo u rezidentnom modu:

npm run watch

Laravel je PHP frejmvork baziran na MVC arhitekturi. Slede beleške iz tutorijala koje sam nedavno prošao 🙂

Instalacija

Laravel instaliramo pomoću Kompozera:

composer create-project laravel/laravel projekat

Pošto ja ne držim projekte u /srv/http direktorijumu već pravim simboličke linkove, treba obezbediti Apache-u dozvolu za pisanje u određene direktorijume:

storage/app/public
storage/logs
storage/framework/views
storage/framework/sessions
bootstrap/cache

To je najlakše uraditi komandama

chown :http putanja
chmod g+w putanja

kao root.

Kada podesimo virtuelni hosting i lokalni domen, potrebno je da u vhosts fajlu dodamo opciju AllowOverride All za naš document root, u protivnom Mod rewrite neće raditi kako treba.

Struktura fajlova

app/*.phpmodeli
app/Http/Controllerskontroleri
app/Http/Controllers/Controller.phpcore controller that extends the base controller
resources/viewsprikazi - blade template system
routesrute - web.php main route file
configconfig files
.envdatabase credentials
database/migrationsmigracije
publiccss js etc

Rute

routes/web.php je glavni ruter. Spisak ruta može da se vidi sa

php artisan route:list

Po pravilu ruta ne treba da vraća prikaz (view) već je potrebno kreirati funkciju kontrolera koja će da vrati prikaz. Primer:

Route::get('/', 'PagesController@index');//index method of Pages controller
Route::get('/about', 'PagesController@about');
Route::get('/services', 'PagesController@services');

Kontroleri

Kontroleri se nalaze u app/Http/Controllers i kreiramo ih sa

php artisan make:controller MessagesController

Nazivi kontrolera su uvek u pluralu ("Messages" u gornjem primeru). Ako na kraju komande dodamo --resource, dobijamo i sledeće (CRUD) metode:

  • index()
  • create()
  • store(Request $request)
  • show($id)
  • edit($id)
  • update(Request $request, $id)
  • destroy($id)

Modeli

Modeli se smeštaju u app direktorijum. Kreiranje modela:

php artisan make:model Message -m

Nazivi modela su za razliku od kontrolera u singularu ("Message" u gornjem primeru). Opcija -m kreira migracione fajlove u database/migrations. Za kreiranje tabela ćemo koristiti

php artisan migrate

a za interaktivni rad sa bazom možemo da pokrenemo

php artisan tinker

Iz Tinkera se izlazi sa quit. Laravel koristi Eloquent ORM - "ActiveRecord implementation for working with databases".

Podaci o konekciji sa bazom se nalaze u .env fajlu a da bismo uopšte mogli da koristimo npr. MySQL bazu, potrebno je da u php.ini uključimo pdo_mysqli.so.

MVC je skraćenica od Model-View-Controller i predstavlja način struktuiranja modernih aplikacija. To znači da aplikacija treba da bude podeljena na tri glavne komponente (model, prikaz i kontroler) od kojih svaka treba se bavi posebnim skupom poslova:

  • kontroler upravlja korisničkim zahtevima i njegov zadatak je da poziva neophodne objekte  i obezbeđuje resurse kako bi ispunio korisničke zahteve; uobičajeno je da kontroler poziva odgovarajuće modele kako bi se izvršio dati zadatak i da onda bira odgovarajuće prikaze
  • model predstavlja podatke i operacije nad tim podacima; model kontroleru daje podatke koje je tražio korisnik
  • prikaz omogućuje različite načine predstavljanja podataka koje je obezbedio model; može postojati više prikaza istih podataka i kontroler odlučuje o tome koji će izabrati

Ako se bavite PHP-om i prvi put se susrećete sa ovakvom arhitekturom, na adresi jream.com/lab možete naći video tutorijale čoveka koji pravi sopstveni MVC od nule. Jednom kada savladate sve korake kreiranja MVC-a, možete bez problema instalirati neki od frejmvorka tipa Zend, Ji, Laravel, CI, Kejk i reći "pa ja razumem sve ovo" i krenuti da radite.

Više o MVC-u na adresi code.tutsplus.com

Izvor: Majstor Kvariš