SlideShare a Scribd company logo
1 of 49
Download to read offline
Jak se dělal nový
skrz.cz na Symfony
a Elasticsearch
PHP<live>Ostrava, 3.12.2015
O mně
• Kouzelná Almara
• Skrz.cz
• Liftago
• github.com/jakubkulhan
• twitter.com/jakubkulhan
• medium.com/@jakubkulhan
Co je skrz?
??? - květen 2014
“Zabij všechny SELECTy do
májeskjůelky!”
SELECT … JOIN … JOIN … JOIN …
“MySQL spadla… Redis spadnul…”
if (MySQL) { … } else if (Redis) { … }
“Něco blbě v konfigu…”
Service::Config()->application->…
Service::Smarty()->set(“…”, …)
“Na mym dev portu ty obrázky
jsou… #@^**#@, pustils sync
do špatný složky…”
“Ta změna na letácích
rozbila recenze.”
“… snippety …”
“Load 100… to ten server
dlouho nevydrží…”
REDESIGN
lib/, getcomposer.org
“Hele, chtělo by to použít
ňákej framework…”
Nette, Zend, Symfony, …
Nette, Zend, Symfony
Nette, Zend, Symfony
Nette, Zend, Symfony
MySQL, Redis,
Elasticsearch
MySQL, Redis,
Elasticsearch
Doctrine, …
Doctrine, …vlastní
github.com/skrz/meta
map.conf
+
ControllerRunner
Symfony Kernel až
červen 2015
DI container
Autowiring!
kutny/autowiring-bundle
skrz/autowiring-bundle
autowiring + autoscan PSR-4 +
@Autowired + @Value
Twig, …
Twig, …vlastní
skrz/templating-engine
+
SkrzTemplatingBundle
(not released)
Breadth-first render
SecurityBundle,
UserService
SecurityBundle, UserService
Pozor na PHPSESSID!
REDESIGN²
punk, feature branching + code reviews
SVN, Git
Continuous integration + testy:
jakub.skrz.xyz + dev-ABCD.skrz.xyz
devblog.skrz.cz/post/113170144803/jak-nenásilně-
začít-testovat
Deployment:
codeascraft.com/2013/07/01/
atomic-deploys-at-etsy/
Shrnutí
1. Symfony jako fw byla tehdy jediná volba. Od té doby se rozhodnutí
mnohokrát vrátilo.
1. Flexibilnost, rozšiřitelnost přes bundles.
2. Postupný přechod.
2. Elasticsearch je prostě super!
1. https://www.zdrojak.cz/clanky/jak-skrz-cz-radi-20k-nabidek-podle-
real-time-analytiky/
2. Znamenal vytvořit skrz/meta. Čas strávený vytvářením téhle knihovny
se taky mnohokrát vrátil.
3. Testy a jednoduchý rollback při deploymentu mnohokát zachránily prdel!
Otázky?
github.com/jakubkulhan
twitter.com/jakubkulhan
medium.com/@jakubkulhan
github.com/skrz
twitter.com/SkrzCzDev
devblog.skrz.cz
facebook.com/SkrzCirkus
Sledujte Skrz Cirkus
a přijďte na další!
Díky!
github.com/jakubkulhan
twitter.com/jakubkulhan
medium.com/@jakubkulhan
github.com/skrz
twitter.com/SkrzCzDev
devblog.skrz.cz
facebook.com/SkrzCirkus
Sledujte Skrz Cirkus
a přijďte na další!

More Related Content

Similar to Jak se dělal nový Skrz.cz na Symfony a Elasticsearch

Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)Jakub Kulhan
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQMichal Špaček
 
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?Tomáš Strejček
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 

Similar to Jak se dělal nový Skrz.cz na Symfony a Elasticsearch (8)

Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQ
 
CQRS v rohlik.cz
CQRS v rohlik.czCQRS v rohlik.cz
CQRS v rohlik.cz
 
App Engine Kick Start
App Engine Kick StartApp Engine Kick Start
App Engine Kick Start
 
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
 
Infrastruktura památníku českého webu a zkušenosti s Heritrixem
Infrastruktura památníku českého webu a zkušenosti s HeritrixemInfrastruktura památníku českého webu a zkušenosti s Heritrixem
Infrastruktura památníku českého webu a zkušenosti s Heritrixem
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 

Jak se dělal nový Skrz.cz na Symfony a Elasticsearch