Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

Jak správně updatovat Nette

Potřebujete aktualizovat projekt běžící na Nette 2.0 na nejnovější verzi? Tady je pár tipů, jak na to.

Stoupejte po jednotlivých verzích

Tj. nejprve aktualizujte na Nette 2.1, poté 2.2, a tak dále. Důvod je ten, že pokud se v Nette nějaká vlastnost změní nebo odstraní, děje se tak v postupných krocích trvajících i několik let. Nejprve je vlastnost jako deprecated jen označena v kódu (silently deprecated), v další velké verzi emituje hlášku E_USER_DEPRECATED, ale funkčnost je zachována, a teprve ve třetí verzi je odstraněna.

Nette se snaží, aby ony hlášky byly maximálně srozumitelné a návodné (např. Syntax {!$var} is deprecated, use {$var|noescape} on line 123), abyste mohli zastaralé věci snadno nahradit.

Pokud byste přeskočili několik verzí, mohli byste přijít o tuto důležitou fázi.

Začínejte bez E_USER_DEPRECATED

Před nasazováním nové verze je vhodné nejprve vypnout hlášení chyb E_USER_DEPRECATED:

$configurator->enableDebugger();
error_reporting(~E_USER_DEPRECATED); // všimněte si ~

Nyní můžete vyzkoušet, zda vše funguje jak má, bez upozorňování na zapovězené věci. Pokud vše funguje, hlášky zase povolte a upravte podle nich kód.

Čtěte dokumentaci

Všechny migrační návody najdete v dokumentaci. Pokud byste ve firmě potřebovali s aktualizací pomoci, jsem vám k dispozici.

Komentáře

  1. fhliva #1

    avatar

    Taketo zalezitosti by vo frameworkoch vôbec nemali byt. ak raz nejaka vlastnost je, tak tam musi byt aj za 10 rokov a nemoze sa kazdu chvilu nazyvat inak. Kedysi som prave koli nekompatibilnym zmenam odysiel od nette. S kazdou podverziou som musel nieco menit a zistovat na fore preco to zrazu nefunguje a preco mam zase pracu navyse.

  2. Kraus #2

    avatar

    #1 fhlivo, Který framework drží zpětnou kompatibilitu 10 let?

    před měsícem | odpovědět
  3. David Grudl http://davidgrudl.com #3

    avatar

    #1 fhlivo, to je nedílná součást vývoje, děje se tak u Nette jakož i každého jiného frameworku. Čím je framework dospělejší, tím se změn odehrává méně.

    Navíc u Nette postupuji celou dobu evolučně, to znamená, že nikdy nedošlo ke vzniku verze, která by byla totálně nekompatibilní s předchozí, jako se stalo třeba u Zendu nebo Symfony.

    před měsícem | odpovědět
  4. Tomáš Votruba http://www.tomasvotruba.cz/ #4

    avatar

    Diky za zmínku postupného upgradu!

    #1 fhlivo,
    Ideální stav je 10 let BC, ale realita pracuje s omezeným množstvím energie a lidí.

    To je IMHO otázka priorit, resp. balanc mezi stabilitou a rychlostí vývoje. Na samotný článek by to vydalo. Doctrine je třeba stabilní, ale ne progresivní. Přestává stíhat řešit potřeby nových uživatelů.

    Doporučuji udržovat aspoň půl roku php open-source projekt na Githubu, kde toto know how přirozeně přichází.

    před měsícem | odpovědět

Zanechat komentář

Text komentáře
Kontakt

(kvůli gravataru)



*kurzíva* **tučné** "odkaz":http://example.com /--php phpkod(); \--