EMRE
YILMAZFull Stack Web Developer & Consultant
twitter.com/delirehberi
github.com/delirehberi
linkedin.com/in/delirehberi
SYMFONY 3
En iyinin daha iyisi
“Symfony neydi? Symfony emekti!
-Fabien Potencier
“« Symfony is a set of PHP
Components, a Web Application
framework, a Philosophy, and a
Community — all working together
in harmony. »
-Sensio Labs
SYMFONY NEYDİ?
➤ 2005 Yılından beri
➤ SensioLabs önderliğinde
➤ Sürüsüyle bundle ( KNPLabs derki 2740 adet )
➤ 1393 kod geliştirici
➤ 1049 dökümantasyon yazan insan
➤ Mikro ve Makro ölçekli tüm web uygulamaları için
Ah şu Symfony olmasa.
http://symfony.com/projects
6
SEMANTIC
VERSIONING
YANİ ?
➤ Major
➤ Uyumsuz API değişiklikleri
➤ Modası geçmişlerin ölümü (deprecated)
➤ Bağımlı olunan php versiyonu da yükselir (major/minor)
➤ Minor
➤ Yeni özellikler eklenir ( Geriye uyumludur )
➤ Varolan işlevini kaybedecek kısımlar modası geçmiş olarak
işaretlenir (deprecated)
➤ Patch
➤ Hata temizleme işleri ( Geriye uyumludur )
➤ Güvenlik açıkları ( Geriye uyumludur )
SYMFONY 3.0.0
Ne yenilik getirdi ?
HİÇ BİR ŞEY
Fabien daha önce söylemişti!
PEKİ YA N`OLDU ?
➤ LTS bir versiyon değil.
➤ Symfony 2.8 kodu üzerine oturuyor.
➤ Tüm modası geçmiş kısımlar temizlendi. (deprecated)
➤ Minimum PHP versiyonu 5.5.9 oldu.
➤ Geriye yönelik uyumluluk olabildiğince sağlanmaya çalışıldı.
➤ Yapısal hatalar giderildi.
➤ Yeni klasör yapısı
Bİ OLAY YOK!
Esas mesele 2.8`de
SYMFONY 2.8`E KADAR OLANLAR
➤ Microframework
➤ Form improvements
➤ Console Style Guide
➤ Deprecated service definitions
➤ Redesigned Profiler
➤ Service Auto Wiring
➤ PropertyInfo component
➤ Console improvements
➤ LDAP component
➤ Redesigned Web Debug Toolbar
MICRO FRAMEWORK
https://github.com/ismailbaskin/ufak-sf
FORM IMPROVEMENTS
HTML5 Range Input
2.7 : Choice
2.8: Date,Time,DateTime
Entity türü için query
builder’dan boş değer
dönebiliyor.
Formlar için Foundation
5 teması.
CONSOLE STYLE GUIDE
2.7`de de mevcut ancak 2.8`den itibaren kullanılmaya başlandı.

Değişken adını io olarak veriyoruz, çünkü hem girdi, hem çıktı için
kullanılıyor.
DEPRECATED SERVICE DEFINITIONS
REDESIGNED PROFILER
SERVICE AUTO WIRING
Öntanımlı olarak autowire kapalı.

Yeni bir olay değil. Spring Java
framework 10 yıl önce yaptı bunu.
PROPERTYINFO COMPONENT
Önce extractor sınıfları verilir, kendinize özel extractor
yazabilirsiniz.
CONSOLE IMPROVEMENTS
TableStyleProgressIndicator
LDAP COMPONENT
Önce servis olarak sınıfı ldap adresiyle
tanımlıyor

Ardından provider olarak ldap ayarları
ekleniyor.

Son olarak firewall olarak tanımlamalar
yapılıyor
REDESIGNED WEB DEBUG TOOLBAR
SYMFONY 3.0`DA OLAN MİNİK ŞEYLER
➤ Bazı metodlarda kullanım değişiklikleri
➤ Bazı sınıflarda namespace değişiklikleri
➤ Bazı formtype’larda ayar adı değişiklikleri
➤ Bir sürü deprecated metod silindi
➤ LoggerInterface PSR a uyduruldu
➤ Kimi commandların çağrımı değiştirildi
https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md
SYMFONY 3.0`DA KLASÖR DEĞİŞİKLİKLERİ
2.3.* 2.8.* 3.0
HA DEYİNCE SYMFONY 3.0 OLMAZ
➤ Tüm deprecated kısımları güncelleyin.
➤ Symfony Upgrade Fixer ile bi kontrol edin. *
➤ Kullandığınız bundle`ları kontrol edin.
➤ Güncelleme dökümanını kontrol edin. *
* https://github.com/umpirsky/Symfony-Upgrade-Fixer
* https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md
KİMLER HAZIR ?
AequasiCacheBundle FOSUserBundle SensioGeneratorBundle DoctrineCouchDBBundle
KnpGaufretteBundle GnugatPommFoundationB
undle
SLLHIsoCodesValidator DoctrineMongoDBBundle
VichUploaderBundle HTTPHeadersBundle SncRedisBundle ElaoWebProfilerExtraBun
dle
AsseticBundle IncenteevParameterHandl
er
SonataAdminBundle FOSCommentBundle
BazingaJsTranslationBundl
e
IvoryCKEditorBundle StofDoctrineExtensionsBu
ndle
FOSJsRoutingBundle
CacheFlushBundle JMSI18nRoutingBundle TacticianBundle FOSOAuthServerBundle
ControllerExtraBundle JMSSerializerBundle VisithorBundle HWIOAuthBundle
CraueFormFlowBundle KnpMenuBundle WhiteOctoberPagerFanta
Bundle
JMSAopBundle
DoctrineBundle KnpPaginatorBundle RollerworksSearchBundle JMSTranslationBundle
DoctrineCacheBundle KnpSnappyBundle AdmingeneratorGenerato
rBundle
LexikFormFilterBundle
DoctrineFixturesBundle KnpTimeBundle DoctrineMigrationsBundle PrestaSitemapBundle
DoctrinePHPCRBundle LiipImagineBundle GenemuFormBundle RabbitMqBundle
EasyAdminBundle LiuggioExcelBundle JMSDiExtraBundle RaulFraileLadyBugBundle
EkinoNewRelicBundle MopaBootstrapBundle JMSSecurityExtraBundle SimpleDoctrineMapping
FMElfinderBundle NelmioApiDocBundle LiipFunctionalTestBundle SonataMediaBundle
FOSElasticaBundle SensioDistributionBundle PropelBundle
FOSRestBundle SensioFrameworkExtraBu
ndle
RSQueueBundle
https://docs.google.com/spreadsheets/d/1GOxJ2lNpLxN12YyZ87Bhsxb0iLAQ7e4UDZbJSly8Sy8/edit#gid=0
YA SONRA ?
EMRE
YILMAZFull Stack Web Developer & Consultant
twitter.com/delirehberi
github.com/delirehberi
linkedin.com/in/delirehberi

Symfony 3

  • 1.
    EMRE YILMAZFull Stack WebDeveloper & Consultant twitter.com/delirehberi github.com/delirehberi linkedin.com/in/delirehberi
  • 2.
  • 3.
    “Symfony neydi? Symfonyemekti! -Fabien Potencier
  • 4.
    “« Symfony isa set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony. » -Sensio Labs
  • 5.
    SYMFONY NEYDİ? ➤ 2005Yılından beri ➤ SensioLabs önderliğinde ➤ Sürüsüyle bundle ( KNPLabs derki 2740 adet ) ➤ 1393 kod geliştirici ➤ 1049 dökümantasyon yazan insan ➤ Mikro ve Makro ölçekli tüm web uygulamaları için
  • 6.
    Ah şu Symfonyolmasa. http://symfony.com/projects 6
  • 7.
  • 9.
    YANİ ? ➤ Major ➤Uyumsuz API değişiklikleri ➤ Modası geçmişlerin ölümü (deprecated) ➤ Bağımlı olunan php versiyonu da yükselir (major/minor) ➤ Minor ➤ Yeni özellikler eklenir ( Geriye uyumludur ) ➤ Varolan işlevini kaybedecek kısımlar modası geçmiş olarak işaretlenir (deprecated) ➤ Patch ➤ Hata temizleme işleri ( Geriye uyumludur ) ➤ Güvenlik açıkları ( Geriye uyumludur )
  • 10.
  • 11.
    HİÇ BİR ŞEY Fabiendaha önce söylemişti!
  • 13.
    PEKİ YA N`OLDU? ➤ LTS bir versiyon değil. ➤ Symfony 2.8 kodu üzerine oturuyor. ➤ Tüm modası geçmiş kısımlar temizlendi. (deprecated) ➤ Minimum PHP versiyonu 5.5.9 oldu. ➤ Geriye yönelik uyumluluk olabildiğince sağlanmaya çalışıldı. ➤ Yapısal hatalar giderildi. ➤ Yeni klasör yapısı
  • 14.
    Bİ OLAY YOK! Esasmesele 2.8`de
  • 15.
    SYMFONY 2.8`E KADAROLANLAR ➤ Microframework ➤ Form improvements ➤ Console Style Guide ➤ Deprecated service definitions ➤ Redesigned Profiler ➤ Service Auto Wiring ➤ PropertyInfo component ➤ Console improvements ➤ LDAP component ➤ Redesigned Web Debug Toolbar
  • 16.
  • 17.
    FORM IMPROVEMENTS HTML5 RangeInput 2.7 : Choice 2.8: Date,Time,DateTime Entity türü için query builder’dan boş değer dönebiliyor. Formlar için Foundation 5 teması.
  • 18.
    CONSOLE STYLE GUIDE 2.7`dede mevcut ancak 2.8`den itibaren kullanılmaya başlandı. Değişken adını io olarak veriyoruz, çünkü hem girdi, hem çıktı için kullanılıyor.
  • 19.
  • 20.
  • 21.
    SERVICE AUTO WIRING Öntanımlıolarak autowire kapalı. Yeni bir olay değil. Spring Java framework 10 yıl önce yaptı bunu.
  • 22.
    PROPERTYINFO COMPONENT Önce extractorsınıfları verilir, kendinize özel extractor yazabilirsiniz.
  • 23.
  • 24.
    LDAP COMPONENT Önce servisolarak sınıfı ldap adresiyle tanımlıyor Ardından provider olarak ldap ayarları ekleniyor. Son olarak firewall olarak tanımlamalar yapılıyor
  • 25.
  • 26.
    SYMFONY 3.0`DA OLANMİNİK ŞEYLER ➤ Bazı metodlarda kullanım değişiklikleri ➤ Bazı sınıflarda namespace değişiklikleri ➤ Bazı formtype’larda ayar adı değişiklikleri ➤ Bir sürü deprecated metod silindi ➤ LoggerInterface PSR a uyduruldu ➤ Kimi commandların çağrımı değiştirildi https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md
  • 27.
    SYMFONY 3.0`DA KLASÖRDEĞİŞİKLİKLERİ 2.3.* 2.8.* 3.0
  • 28.
    HA DEYİNCE SYMFONY3.0 OLMAZ ➤ Tüm deprecated kısımları güncelleyin. ➤ Symfony Upgrade Fixer ile bi kontrol edin. * ➤ Kullandığınız bundle`ları kontrol edin. ➤ Güncelleme dökümanını kontrol edin. * * https://github.com/umpirsky/Symfony-Upgrade-Fixer * https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md
  • 29.
    KİMLER HAZIR ? AequasiCacheBundleFOSUserBundle SensioGeneratorBundle DoctrineCouchDBBundle KnpGaufretteBundle GnugatPommFoundationB undle SLLHIsoCodesValidator DoctrineMongoDBBundle VichUploaderBundle HTTPHeadersBundle SncRedisBundle ElaoWebProfilerExtraBun dle AsseticBundle IncenteevParameterHandl er SonataAdminBundle FOSCommentBundle BazingaJsTranslationBundl e IvoryCKEditorBundle StofDoctrineExtensionsBu ndle FOSJsRoutingBundle CacheFlushBundle JMSI18nRoutingBundle TacticianBundle FOSOAuthServerBundle ControllerExtraBundle JMSSerializerBundle VisithorBundle HWIOAuthBundle CraueFormFlowBundle KnpMenuBundle WhiteOctoberPagerFanta Bundle JMSAopBundle DoctrineBundle KnpPaginatorBundle RollerworksSearchBundle JMSTranslationBundle DoctrineCacheBundle KnpSnappyBundle AdmingeneratorGenerato rBundle LexikFormFilterBundle DoctrineFixturesBundle KnpTimeBundle DoctrineMigrationsBundle PrestaSitemapBundle DoctrinePHPCRBundle LiipImagineBundle GenemuFormBundle RabbitMqBundle EasyAdminBundle LiuggioExcelBundle JMSDiExtraBundle RaulFraileLadyBugBundle EkinoNewRelicBundle MopaBootstrapBundle JMSSecurityExtraBundle SimpleDoctrineMapping FMElfinderBundle NelmioApiDocBundle LiipFunctionalTestBundle SonataMediaBundle FOSElasticaBundle SensioDistributionBundle PropelBundle FOSRestBundle SensioFrameworkExtraBu ndle RSQueueBundle https://docs.google.com/spreadsheets/d/1GOxJ2lNpLxN12YyZ87Bhsxb0iLAQ7e4UDZbJSly8Sy8/edit#gid=0
  • 30.
  • 32.
    EMRE YILMAZFull Stack WebDeveloper & Consultant twitter.com/delirehberi github.com/delirehberi linkedin.com/in/delirehberi