Nette DI 3.1: přechodová verze
Přechodové verze nepřinášejí novinky, ale mají za cíl upozornit pomocí notices na vše, co bude v nové velké verzi fungovat jinak a poradit s aktualizací. Týkalo se to třeba Latte 2.11 nebo čerstvě vydané Nette DI 3.1.
První změnou je oprava chování autowiringu, který nullable parametrům
bez výchozí hodnoty již nepředává automaticky null
a argument
je potřeba explicitně uvést (nebo doplnit výchozí hodnotu):
class Foo
{
public function __construct(?string $foo)
{}
}
Konfigurace:
- - Foo
+ - Foo(null)
Dále končí podpora pro anotace @return
:
class FooFactory
{
- /** @return Foo */
+ public function create(): Foo
{
}
}
Pokud je anotace použita v kódu třetí strany, doplňte typ v konfiguraci:
services:
-
create: FooFactory::create
type: Foo
Uvnitř definic automaticky generovaných továren jsou deprecated klíče
parameters
. Zastaralé jsou také klíče dynamic
(nahraďte za imported
) a class
v místě, kde by se
mělo použít type
:
services:
- class: MyService
+ type: MyService
- dynamic: yes
+ imported: yes
Dále symbol ...
představující vynechaný argument se mění
na _
:
services:
- - MyService(..., 123)
+ - MyService(_, 123)
V souborech NEON už není potřeba na začátku řetězce escapovat znak
@
:
services:
- - MyService('@@example.com')
+ - MyService('@example.com')
Deprecated je metoda Nette\DI\Config\Loader::save()
, pokud
chcete konfiguraci exportovat, využijte přímo metodu adaptéru
Nette\DI\Config\Adapters\NeonAdapter::dump()
.
Chcete-li odeslat komentář, přihlaste se