"Erdélyi Tamás (netpeople.hu) előadásában beszélni fog a legfontosabb változásokról és hogy miért is lesz ez jó nekünk. Röviden, címszavakban szó lesz a megváltozott könyvtárstruktúráról, az új validációs lehetőségekről, a fájlgenerátorokról, a fájlrendszer elérését kibővítő, új alap package-ről, a Flysystemről és az ún. Contractokról, amelyek még átláthatóbb, tisztább keretet adnak a rendszernek."
http://www.meetup.com/laravelbp/events/213586752/
11. 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
12. Példa: Config contract
// Config/Repository.php
namespace IlluminateContractsConfig;
interface Repository {
public function has($key);
public function get($key, $default = null);
public function set($key, $value);
}
16. Új fájlstruktúra
app
Console
Http
Controllers
Filters
Requests
Providers
bootstrap
config
database
migrations
seeds
public
resources
lang
views
storage
cache
logs
meta
sessions
views
work
17. Új fájlstruktúra
• Alapértelmezett alkalmazás namespace (“App”)
php artisan app:name SzuperAlkalmazas
php artisan app:name
SzuperVendorSzuperAlkalmazas
• PSR-0 helyett PSR-4 autoloading
• Az app mostantól csak az üzleti logikát tartalmazza
18. 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”
21. Új helyre kerültek
View (resources/view)
Lang (resources/lang)
Assets (raw assets, LESS vagy
SASS, nem CSS vagy JS)
Config
Tests
22. Ú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.php
Artisan.php -> Providers/ArtisanServiceProvider.php
Routes.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.
23. 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.
24. 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
26. 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
34. É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)