Osnove Laravela

Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

Hi!

PHP wrong (old) way


<?php
//connect to db
//get items
//show in html
//get other items
//show in html
//close connection

?> <h1>some html here</h1>

MVC patern

view

model
controller

Composer
- npm, bundler za PHP
- Oko 50.000 PHP biblioteka na Packagist
- composer.json
- autoloading, vendor

PHP frameworks
- Silex

- Kohana

- Yii Framework

- Medoo

- Zend Framework

- Symfony

- Flight

- Aura

- Phalcon

- Fuel PHP

- Cake PHP

- Slim Framework

- CodeIgniter

Laravel
- Moderan MVC PHP framework
- Najpopularniji PHP projekat na GitHub-u
- Kreator Tejlor Otvel (Taylor Otwell)
- Jednostavan, intuitivan
- Verzija 4.2
- Uskoro verzija 5

LARAVEL 101

Laravel karakteristike
- Fleksibilno rutiranje
- Korienje Composer paketa
- Eloquent ActiveRecord ORM
- Artisan (upravljanje preko komandne linije)
- Drajveri za autentikaciju
- Cache drajveri
- Queue drajveri
- Dependency Injection / IoC container
-

Instalacija
> composer create-project laravel/laravel my-app

Struktura aplikacije

Kontroler
class UserController extends BaseController {
public function showProfile($id)
{
$user = User::find($id);
return View::make('user.profile', array('user' => $user));
}
}

Model
class User extends Eloquent {}

View
<html>
<body>
<h1>Zdravo, {{ $name }}</h1>
</body>
</html>

Blade
<html>
<body>
@section('sidebar')
Ovo je glavni sidebar.
@show
<div class="container">
@yield('sadrzaj')
</div>
</body>
</html>

Blade
@extends('layouts.master')
@section('sidebar')
<p>Ovo e biti dodato u master sidebar.</p>
@stop
@section('sadrzaj')
<p>Ja sam sadraj stranice.</p>
@stop

Blade
- {{ $promenljiva or nije definisano }}
- {{{ $promenljiva }}} // XSS scripting
- @if, @endif, @foreach, @endforeach

Rutiranje
- Rutiranje ka kontroleru (RESTful i non RESTful)
- Rutiranje ka closure-u
- Rutiranje ka resursima

Rutiranje ka closure-u
Route::get('/', function() {
http://nas-sajt.com/
return 'Zdravo!';
});

Route::get('/korisnik/{id}', function($id) {
return Podaci za korisnika ' . $id;
})->where('id', '[0-9]+') ;

http://nas-sajt.com/korisnik/1

Rutiranje ka kontroleru
Route::get('/', 'HomeController@index');
Route::post('korisnik/1/', 'UserController@create');

Rutiranje grupe i filteri


Route::group(['before' => 'auth'], function() {
Route::get('korisnik/info', 'UserController@info');
});
Route::filter('auth', function() {
if (Auth::guest()) {
return Redirect::route('greska');
}
});

Artisan
# php artisan list //lista komandi
# php artisan serve //interni web-server
# php artisan routes //lista ruta
# php artisan generate:migration //generisanje migracije
# php artisan tinker //igralite
#

Illuminate biblioteke
- app/config/app.php

Illuminate\Database\DatabaseServiceProvider

Illuminate\Redis\RedisServiceProvider

Illuminate\Encryption\EncryptionServiceProvider

Illuminate\Remote\RemoteServiceProvider

Illuminate\Foundation\Providers\ArtisanServiceProvider

Illuminate\Filesystem\FilesystemServiceProvider

Illuminate\Auth\Reminders\ReminderServiceProvider

Illuminate\Auth\AuthServiceProvider

Illuminate\Hashing\HashServiceProvider

Illuminate\Database\SeedServiceProvider

Illuminate\Cache\CacheServiceProvider

Illuminate\Html\HtmlServiceProvider

Illuminate\Session\SessionServiceProvider

Illuminate\Session\CommandsServiceProvider

Illuminate\Log\LogServiceProvider

Illuminate\Translation\TranslationServiceProvider

Illuminate\Foundation\Providers\ConsoleSupportServicePr Illuminate\Mail\MailServiceProvider

Illuminate\Validation\ValidationServiceProvider

ovider

Illuminate\Database\MigrationServiceProvider

Illuminate\View\ViewServiceProvider

Illuminate\Routing\ControllerServiceProvider

Illuminate\Pagination\PaginationServiceProvider

Illuminate\Workbench\WorkbenchServiceProvider

Illuminate\Cookie\CookieServiceProvider

Illuminate\Queue\QueueServiceProvider

Korisne biblioteke
- way/generators
- intervention/image
- barryvdh/laravel-debugbar
- cartalyst/sentry

Vagrant & PuPHPet


- Jednostavan GUI za kreiranje virtuelnih maina
- Ubuntu, Debian, CentOS
- Apache, Nginx
- MySQL, PostgreSQL, Mongo, Redis

vagrant up

You might also like