Skip to content

October CMS možemo instalirati pomoću instalera, što je i preporučljiv način, a možemo i preko Kompozera:

composer create-project october/october projekat
cd projekat
php artisan october:install

Ako instalaciju vršimo preko Kompozera, onda ćemo u datoteci config/cms.php promenljivu disableCoreUpdates da postavimo na true.

Pošto ja imam običaj da projekte držim u svom home direktorijumu i da pravim simboličke linkove u /srv/http/, moraćemo da podesimo dozvole. Kao prvo i osnovno je da sebe dodam u grupu http. Nakon toga mogu ovako da podesim dozvole i da to sve manje-više radi kako treba 🙂

chown -R benke:http projekat/
chown -R http:http projekat/storage/
chmod -R ug+w projekat/

Na ovaj način mogu da menjam kod i iz Atoma i iz October CMS integrisanog editora i da nemam problema sa snimanjem dokumenata.

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.