Chystané vydání verze 2.0.7

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8112
+
0
-

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.

Majkl578
Moderator | 1364
+
0
-
David Grudl
Nette Core | 8112
+
0
-
  • 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
+
0
-

Co ExtensionsExtension? Vadila by něčemu, nebo si to šetříš pro lepší příležitost :) ?

Patrik Votoček
Člen | 2221
+
0
-

Já bych prosil Interface Factories.

Majkl578
Moderator | 1364
+
0
-

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 | 8112
+
0
-

ExtensionsExtension je BC break, interface factories chce nechat uzrát v devu.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Pravda, neuvědomil jsem si.

bazo
Člen | 620
+
0
-

funguju tu uz inject metody?

Ot@s
Backer | 476
+
0
-

bazo napsal(a):

funguju tu uz inject metody?

V examples/CD-collections/…/DashboardPresenter.php je to použité.

Majkl578
Moderator | 1364
+
0
-

bazo napsal(a):

funguju tu uz inject metody?

Fungují pro presentery. Pro služby až v 2.1-dev.

David Grudl
Nette Core | 8112
+
0
-

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
+
0
-

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 | 8112
+
0
-

Jak fungovala? Ten post začíná slovy „Pár návrhů, kam posunout DI v další verzi frameworku.“

pekelnik
Člen | 462
+
0
-

@majkl: Ja bych rekl, ze to ted nefungovalo jak ostatne sam pises :)

Editoval pekelnik (21. 11. 2012 18:36)

Majkl578
Moderator | 1364
+
0
-

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.

pekelnik
Člen | 462
+
0
-

Ano, je to tak ;)

services:
	-
		class: Foo

skutecne v 2.0.6 funguje…

David Grudl
Nette Core | 8112
+
0
-

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.

pekelnik
Člen | 462
+
0
-

Odkaz jsem delat nezkousel ale jak tagy tak autowire funguje. Ac zrejme nahodou a nekorektne v nekterych ohledech. Presto to muze nekdo pouzivat.

David Grudl
Nette Core | 8112
+
0
-

Přidal jsem do 2.0.7RC ještě nějaké aktuální fixy.