Přechod z aktuálně používaného frameworku na jiný potká dříve či později každého. Proto je důležité na něm záviset co nejvolněji. A je jedno, jestli píšeme aplikaci nebo knihovnu. V lightning talku ukážu, jak můžeme jít naproti tomu, aby případný přechod bolel co nejméně. Blýská se nám na lepší časy?
http://phpprague.cz/
http://phpprague.cz/speakers/#martin-hujer
Kdo jste Nette developer?
Kdo jste Symfony developer?
Kdo jste Zend Framework developer?
Býval jsem Zend Framework Developer.
A velký fanoušek a propagátor.
Pak jsem začal používat Symfony.
A určitě nejsem jediný, kdo v poslední době změnil framework.
Takže je lepší říkat, že jsem PHP Developer, který zrovna používá Symfony
Framework se může změnit a přestane se vám líbit.
Nebo změníte práci.
A přece nechcete zahodit všechny své knihovny. //cc Filip & Kdyby
Kupodivu jich existuje spoustu.
Jen z rychlého hledání na packagistu, nechci se nikoho dotknout.
1) Změníte framework
2) Obíráte se o spoustu potenciálních uživatelů
3) Pokud to někdo bude chtít v jiném FW, tak musí forknout
1) Udělat samotnou knihovnu nezávislou na FW
2) A k tomu integraci pro konkrétní FW
Ano, víc práce, ale když to dáváte jako OSS, tak si s tím pohrajte.
Mám knihovnu na Fio API a k tomu budle (api klíč v configu) pro Symfony.
A pokud by ji někdo chtěl v ZF, tak si udělá jen module.
Akorát to pak dopadne takhle
Nebo takhle
Jde o to, že většinou ty meta balíčky jsou jen definice pro DI kontejner + možnost konfigurace.
Bylo by hezké mít možnost to psát jen jednou tak, aby tomu rozuměly všechny FW.
Buď jednotný format configu.
Nebo kompilování definic do společného formátu.
Nereálné
https://groups.google.com/forum/#!topic/php-fig/xsY8bRG5K0M
PHP-FIG víc řeší byrokracii a hádá se (skoro jako internals)
https://github.com/php-fig/fig-standards/blob/master/proposed/container.md
Propojení vice kontejnerů, něco podobného jako u autoloaderu – hledá se, dokud se nenajde.
https://github.com/container-interop/container-interop/blob/master/docs/Delegate-lookup.md
https://github.com/container-interop/container-interop/blob/master/docs/Delegate-lookup-meta.md