hello laravel 5!
TRANSCRIPT
Laravel 5laravel.bp 2014. november 5.
Magamról• PHP fejlesztő (backend)
•
• 12 éve készítek weboldalakat
• Laravel evangélista
• Feliratos film lobbista
Az előző rész tartalmából…
http://www.ustream.tv/recorded/41135392/highlight/440209
Szóval jön az 5.0
Laravel 5.0
• Leánykori nevén: Laravel 4.3
• Megjelenés: valamikor novemberben
• Státusz: folyamatosan finomítják
Telepítés
Telepítés
user@localhost: composer create-project laravel/laravel [celkonyvtar] dev-develop
user@localhost: composer update
Újdonságok
ÚjdonságokContracts
Új fájlstruktúra Flysystem
Request réteg Új Artisan parancsok
Contracts
Mik azok a contractok?• Core service interface-ek gyűjteménye
• Minden service-hez az interface-ek alapján van írva egy implementáció
• A Laravel alapvető funkciói könnyen kibővíthetőek
• https://github.com/illuminate/contracts
Példa: Config contract// Config/Repository.phpnamespace Illuminate\Contracts\Config;
interface Repository {
public function has($key);
public function get($key, $default = null);
public function set($key, $value);}
Demó
Új fájlstruktúra
Új fájlstruktúra
Új fájlstruktúraapp Console Http Controllers Filters Requests Providersbootstrapconfigdatabase migrations seeds
publicresources lang viewsstorage cache logs meta sessionsviewswork
• Alapértelmezett alkalmazás namespace (“App”)php artisan app:name SzuperAlkalmazas php artisan app:name SzuperVendor\\SzuperAlkalmazas
• PSR-0 helyett PSR-4 autoloading
• Az app mostantól csak az üzleti logikát tartalmazza
Új fájlstruktúra
Business or domain logic “Part of the program that encodes the
real-world business rules that determine how data can be created,
displayed, stored, and changed”
Háromrétegű architektúra 1. Megjelenítés (View)
2. Üzleti logika (Controller)
3. Perzisztencia (Modell, DB)
App Console (Artisan commandok)
Http (Controllerek, filterek, requestek)
Providers (Service providerek)
Új helyre kerültek View (resources/view)
Lang (resources/lang)
Assets (raw assets, LESS vagy SASS, nem CSS vagy JS)
Config
Tests
Új helyre kerültek Külön fájlokból Class-ok lettek
Előre meghatározható a fájlok végrehajtása, kevesebb procedurális kód, függetlenedés a keretrendszertől.
Service providerek intenzív használata
Events.php -> Providers/EventServiceProvider.phpArtisan.php -> Providers/ArtisanServiceProvider.phpRoutes.php -> Providers/RouteServiceProvider.php
Routes.php új helye: app/Http/routes.php
A route-okat annotációkban is meghatározthatjuk, ezügyben egyelőre megoszlanak a vélemények.
Miért jó az új struktúra? Elsőre ijesztő, jobban megnézve viszont tisztább és
logikusabb. A teljes keretrendszer működését szabályozhatjuk.
A HTML / Form alapból nincs benne, külön le kell tölteni és Service Providerként betölteni a
config/app-ban.
http://github.com/illuminate/html
Flysystem
Flysystem• The League of Extraordinary Packages
• http://thephpleague.com/
• http://flysystem.thephpleague.com/
• Két fájlrendszer: disk és cloud
• Párhuzamosan két fájlrendszert tudunk kezelni, egymástól függetlenül
• Alapból beállítva: Local, S3, Rackspace
• A Flysystem támogatja még: Dropbox, FTP / SFTP, WebDAV, ZipArchive
Flysystem
File::disk('s3') ->put('hello.txt', 'Ez itt egy teszt’);
Flysystem
Request réteg
Demó
Új Artisan parancsok
Make
Route
És ha még nem volna elég…
• Új helperek: get(), view(), redirect()
• Middleware: filterek helyett / mellett, request és response között (http://fideloper.com/laravel-http-middleware)
• Socialite: közösségi authentikáció package az Auth-hoz (https://github.com/laravel/socialite)
Hogyan tovább?
Hogyan tovább?• Dokumentáció: http://laravel.com/docs/master
• Laracasts: http://laracasts.com
• Figyelemmel követni a “develop” branch commitjait
• Tanulmányozni a kódot
• Tanulmányozni a DDD-t (Domain Driven Development)
Twitter: @terdelyi Email: [email protected]
LinkedIn: http://hu.linkedin.com/in/terdelyi
A prezentáció innen letölthető: http://www.slideshare.net/terdelyi