Chystané vydání verze 2.0.7
- David Grudl
- Nette Core | 8227
Dva měsíce utekly jako voda a rád bych vydal verzi 2.0.7. Obsahuje řadu drobných fixů, novou verzi Sandboxu včetně šablony pro generování formulářů a aktualizaci pro Nette\Tester.
Update by pochopitelně neměl způsobit žádné komplikace. Pokud byste narazili na nějakou chybu nebo pokud víte o issue, které by mělo být do této verze zařazeno, dejte vědět.
- Nette Framework 2.0.7 RC pro PHP 5.3 | pro PHP 5.2 | PHP 5.2 bez prefixů
- changelog
- Majkl578
- Moderator | 1364
Co přidat tohle?
DI\ContainerBuilder: checks if created classes are instantiable – tohle je IMHO BC break.
- David Grudl
- Nette Core | 8227
- moved monitor out: to by asi mohlo jít
- checks if created classes are instantiable: v jaké situaci to způsobí BC break?
- Vojtěch Dobeš
- Gold Partner | 1316
Co ExtensionsExtension? Vadila by něčemu, nebo si to šetříš pro lepší příležitost :) ?
- Majkl578
- Moderator | 1364
David Grudl napsal(a):
- checks if created classes are instantiable: v jaké situaci to způsobí BC break?
Fajn, asi beru zpět. Generování containeru při neexistující třídě služby stejně spadne, jen jinde (volání prepareClassList uvnitř generateClass). :)
A ještě tenhle commit: DI\ContainerBuilder:
fixed processing of services with falsy, numeric (/-?\d+/) or short name
V configu mám službu definovanou (jako anonymní, kvůli tagům tímto
způsobem) takto:
services:
-
class: App\Foo\Bar
tags: [something]
Aplikace nyní padá na té výjimce " Nette\InvalidArgumentException Service name must be a non-empty string, string given.", protože addDefinition dostává ‚0‘.
- David Grudl
- Nette Core | 8227
ExtensionsExtension je BC break, interface factories chce nechat uzrát v devu.
- David Grudl
- Nette Core | 8227
Majkl578 napsal(a):
V configu mám službu definovanou (jako anonymní, kvůli tagům tímto způsobem) takto…
Takto definovaná služba nefunguje úplně správně, všechny
if ($this->getServiceName
v ContainerBuilderu se totiž
vyhodnotí špatně a je tedy lepší rovnou vyhodit výjimku. Nicméně jako
fix by se mohlo přidat do Compileru přečíslování, což by vyřešilo
problém s nulou. Předpokládám, že službu nikdo záměrně nepojmenovává
číslem.
- Majkl578
- Moderator | 1364
David Grudl napsal(a):
Takto definovaná služba nefunguje úplně správně, …
Zvláštní, jak by potom fungovala část příklad mixu v odstavci Nepojmenované služby tvého dnešního tématu Dependency Injection v Nette 2.1? Tam uvádíš totéž:
services:
-
class: Panel
inject: true
Nebo tam je to teprv jako myšlenka (a teď to funguje shodou náhod)?
- David Grudl
- Nette Core | 8227
Jak fungovala? Ten post začíná slovy „Pár návrhů, kam posunout DI v další verzi frameworku.“
- Majkl578
- Moderator | 1364
pekelnik napsal(a):
@majkl: Ja bych rekl, ze to ted nefungovalo jak ostatne sam pises :)
Jak jsem psal, fungovalo, v 2.0.6 to používám bez problémů (definice
anonymní služby + jejího tagu). :)
Konkrétní použití bylo jednoduché – šlo o Symfony CLI command, jako
anonymní služba, který je vyhledán podle tagu (nella/doctrine).
Fungovalo bez problému.
- David Grudl
- Nette Core | 8227
Opakuji znovu, že to nefunguje korektně. Zkuste si třeba udělat odkaz
abc: @\Foo
, výsledkem bude
Reference to missing service of type \Foo
.