jak přežít symfony 3 - 1. sraz přátel symfony v praze (in czech)
TRANSCRIPT
Jak přežít Symfony 3?
Tomáš Votruba@votrubaT
Co dělám, když zrovna nepřednáším?
Školím a spoluvytvářím Symfony, Doctrine a Nette
Organizuju Symfony komunity u nás
Programuju Lekarnu.cz
Novinky v Symfony 3
1. vydání verzí2. deprecations3. nejzajímavějších novinkách4. kdy a jak migrovat
Dnes si povíme něco o...
1. Sémantické verzování
- x.y.z BC break
- x.y.z nové featury
- x.y.z bug fixes
1. Co umí jaká verze?
2.8 - všechny nové featury
3.0 = 2.8 bez BC kompatibility
1. Min. PHP verze
1. Jak je to s dobou trvanlivosti?
1. vydání verzí2. deprecations3. nejzajímavějších novinkách4. kdy a jak migrovat
Dnes si povíme něco o...
2. Pryč se starým kódem
2. Štíhlé Symfony po fitku
2. Štíhlé Symfony po fitku
- 10 %
2. Štíhlé Symfony :)
ProFIT!
● rychlejší vývoj● snazší orientace● jednoznačné API
1. vydání verzí2. deprecations3. nejzajímavějších novinkách4. kdy a jak migrovat
Dnes si povíme něco o...
3. Změny v adresářové struktuře Symfony fullstack
3. Zaměření na DX (Developer experience)● autowiring● debug-bar● adaptace PSR-3, LoggerInterface● rozdělení Security:
○ vyčlenění SecurityAclBundle○ nová komponenta Security Guard
3. Autowiring závislostí služeb
3. Autowiring - zápis služeb dříveservices:
myService:
class: MyBundle\MyService
arguments: [ dependency1, dependency2 ]
dependency1:
class: MyBundle\Dependency1
dependency2:
class: MyBundle\Dependency2
3. Autowiring - nyníservices:
myService:
class: MyBundle\MyService
autowire: true
3. Autowiring - nyníservices:
myService:
class: MyBundle\MyService
autowire: true
DI naparsuje konstruktor a:
- pokud jsou služby dostupné, předá je- pokud ne, registruje je jako privátní služby
3. Autowiring - a co interface?services:
myService:
class: MyBundle\MyService
autowire: true
3. Autowiring - a když je více stejných interfaců?services:
myService:
class: MyBundle\MyService
autowire: true
dependency1:
class: MyBundle\Dependency1
autowiring_types: MyBundle\MyInterface
3. Nová komponenta: Polyfil
3. Nová komponenta: Polyfil- podpora nových features v PHP do starších verzí- řeší kompatibilitu PHP pro některá extension a funkce- vhodná pro portabilitu napříč různými verzemi PHP
Use case:
- password_hash a password_* funkce od PHP 5.5 (balíček) ircmaxell/password-compat)
3. Symfony profiler je šik
1. vydání verzí2. deprecations3. nejzajímavějších novinkách4. kdy a jak migrovat
Dnes si povíme něco o...
4. Proč migrovat?- protože Symfony je super!
4. Proč migrovat?- protože Symfony je super!
4. Proč migrovat?- protože Symfony je super! - raději kvůli businessu- potřebujete nové features- chcete upgradovat i PHP (min PHP 5.5)
4. Jak migrovat?● Symfony < 2.3: na 2.3
● Symfony < 2.7: na 2.7
● Symfony 2.7: na 2.8 (vyjde souběžně s 3.0)
4. Jak najít deprecated kód
4. PHPUnitBridge
composer require symfony/phpunit-bridge --dev
git clone [email protected]:sensiolabs-in/deprecation-detector.git
cd deprecation-detector
composer install
bin/deprecation-detector your-vendor
4. Deprecation detector
4. A co na to bundly?
FOSUserBundle FOSRestBundle
FOSElasticaBundle DoctrineBundle
SonataAdminBundle
KnpMenuBundle
Vyzkoušej si Symfony 3 na vlastní kůžiSENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true composer create-
project symfony/framework-standard-edition myproject @dev
cd myproject
php bin/console server:run localhost:8001
Otevřeš v prohlížeči http://localhost:8001 …
Jak teda zvládneš Symfony 3 a...
Lepší DX?Nové featury?Best practices?
LIKE A BOSS!
Díky za pozornost
Chceš se o Symfony 3 dozvědět víc?
Pobavme se o tom osobně :)
www.tomasvotruba.cz