Nette 2.2-dev

Nedávno byla změněna vývojová verze Nette Frameworku na 2.2-dev (https://github.com/…e9b3139adccc). Tato změna s sebou přinesla explozi změn. Na následujících řádcích bych rád přiblížil některé zásadní změny, které se odehrály a je zapotřebí je upravit, aby bylo možné z verze 2.1-dev přejít právě na verzi 2.2-dev.

Nutné úpravy

Prvě se změnilo umístění konfigurátoru. Tato změna se samozřejmě týká souboru bootstrap.php. Nově je konfigurátor v novém umístění:

//$configurator = new Nette\Config\Configurator;
$configurator = new \Nette\Configurator;

Dále jsem si zvykl používat automatické injektování závislostí pomocí anotace @inject. Pro opětovné použití je nutné zapnout nette.container.accessors, což ostatně napoví chybová hláška, jelikož je tato volba v nové developměnt verzi Nette ve výchozím stavu zakázána. Config.neon:

nette:
    container:
        accessors: TRUE

Nyní již bude možné anotace @inject používat. Další změna, které mě osobně moc nepotěšila a nevím co jí předcházelo je zrušení podpory krátkého zápisu bloků:

<!-- Předtím: -->
{#content}
    ...
{/#}
<!-- Nyní: -->
{block content}
    ...
{/block}

Tato změna se mi moc nelíbí, protože například stále funguje {include #parent}, což je prostě zvláštní… Za zmínku také stojí změna třídy pro práci s databází. Zatímco se ve verzi 2.0.13 normálně používá Nette\Database\Connection, ve verzi 2.1-dev se přešlo na Nette\Database\SelectionFactory, nicméně ve verzi 2.1.0RC2 se již pracuje s Nette\Database\Context a SelectionFactory již neexistuje. Toto platí i pro verzi 2.2-dev. Tato změna mi bude zřejmě dlouho trvat, než ji vstřebám. Myslím si, že obyčejné Nette\Database by bylo v modelu daleko více vypovídající než nějaký Context, ale budiž.

Tolik k podle mého zásadním změnám, které zabrání například spuštění projektu z quickstartu. Nyní bych rád poukázal na několik málo změn z celé té exploze, které mě zaujaly.

Další změny

Byla odstraněna celá řada zastaralých věcí. Nemá smysl je rozebírat. Je jich hodně a zastaralé jsou už od 2.1. Každopádně například makro n:input se stalo zastaralé a k dispozici je nové makro {inputError}, které ošéfuje vykreslení chybové hlášky u příslušného políčka. Jééj! :-)

Lehce odlišně se také přistupuje k checkboxům a vůbec, formuláře jsou zase o něco lepší, což předpokládám souvisí s:

Konečně!

Světlo světa spatřil nový quickstart v češtině pro dnes již téměř nekatuální verzi 2.0.13. Věřím tomu, že se jedná o daleko přínosnější věc, než psaní pokročilých návodů v angličtině (navazujících na quickstart) a doufám, že tento počin pomůže pár lidí popostrčit dál…

Jaká změna vás zaujala nejvíce?

  • V komentářích jsou povolené HTML tagy <a href=""> <blockquote> <code> <em> <strong>
  • Kódy programů zapisujte takto pomocí <pre><code>alert('XSS');</code></pre>