Přechod na verzi 3.1
Minimální požadovaná verze PHP je 7.2.
Verzí Nette 3.1 se rozumí, že máte tyto balíčky nainstalované ve verze 3.1.*:
"require": {
"nette/application": "3.1.*",
"nette/bootstrap": "3.1.*",
"nette/forms": "3.1.*",
"nette/http": "3.1.*",
"nette/security": "3.1.*",
},
Pozor: u ostatních balíčků nainstalujte nejnovější verzi, kterou vám dovolí Composer! Mohou mít totiž jiné
verzování. Zkuste uvést "*" a podívejte se, jakou verzi Composer nainstaluje.
Všemi změnami názvů uvedenými v tomto dokumentu se myslí, že původní názvy samozřejmě nadále existují a fungují, jen jsou označené jako deprecated. Můžete se setkat s tím, že vám je bude IDE vizuálně označovat jako deprecated.
Názvy rozhraní
V Nette se dlouhodobě postupně odstraňuje prefix I z názvů rozhraní, například
Nette\Security\IAuthenticator se mění na Authenticator apod. Ve verzi Nette 3.1 zmizel prefix
z názvů těchto rozhraní:
Nette\Application\IRouter,Nette\Application\IResponse,Nette\Application\UI\IRenderable,Nette\Application\UI\ISignalReceiver,Nette\Application\UI\IStatePersistent,Nette\Application\UI\ITemplate,Nette\Application\UI\ITemplateFactory,Nette\Bridges\ApplicationLatte\ILatteFactoryNette\Caching\IStorage,Nette\Caching\IBulkReader,Nette\Caching\Storages\IJournalNette\Database\IConventions,Nette\Database\ISupplementalDriver(nyníNette\Database\Driver)Nette\Mail\IMailerLatte\ILoader,Latte\Runtime\IHtmlString(nyníLatte\Runtime\HtmlStringable),Latte\Runtime\ISnipperDriver,Latte\IMacroNette\Security\IAuthenticator*),Nette\Security\IAuthorizator,Nette\Security\IResource,Nette\Security\IRole,Nette\Security\IUserStorage*)Nette\Utils\IHtmlString(nyníNette\HtmlStringable),Nette\Localization\ITranslator
*) rozhraní s prefixem je jiné než bez prefixu
Bootstrap
- třída
Nette\Configuratorbyla přejmenována naNette\Bootstrap\Configurator, aby pojmenování bylo konzistentní se zbytkem frameworku - přidána metoda
addStaticParameters()jako alias foraddParameters() - v parametrech předaných metodou
addStaticParameters()neboaddParameters()se již neexpandují%parametry%
Caching
- přejmenována metoda
Nette\Caching\Cache::start()→capture()
Database
- přejmenována třída
Nette\Database\ContextnaNette\Database\Explorerkvůli konzistenci s pojmenováním Database Explorer - rozhraní
Nette\Database\IRowaNette\Database\IRowContainerjsou označeny jako deprecated pro nepotřebnost - MySqlDriver driver používá subqueries
- translator SQL příkazů lépe kontroluje, kde je možné předávat pole
Http
- cookie jsou odesílány s příznakem
sameSite: Lax cookieSecureje nyní defaultně ‚auto‘- volba
session.cookieSecureje zastaralá, místo ní se používáhttp.cookieSecure - cookie
nette-samesitepřejmenováno na_nss Nette\Http\Request::getFile()přijímá pole klíčů a vrací FileUpload|nullNette\Http\Session::getCookieParameters()je zastaralý.Nette\Http\FileUpload::getName()přejmenována nagetUntrustedName()Nette\Http\Url: zastaralé getBasePath(), getBaseUrl(), getRelativeUrl() (tyto metody jsou součástíUrlScript)Nette\Http\Response::$cookieHttpOnlyje zastaraléNette\Http\FileUpload::getImageSize()vrací čistě dvojici[width, height]
Neon
- Decoder: pracuje v režimu UTF-8, při neplatném vstupu vyhodí výjimku
- syntaxe
\xAAje zastaralá ve prospěch\uAAAA
Security
- rozhraní
Nette\Security\Authenticatorse liší odIAuthenticatorsignaturou metodyautheticate(string $user, string $password) - rozhraní
Nette\Security\UserStoragese liší odNette\Security\IUserStorage - přejmenována třída
Nette\Security\Identity→Nette\Security\SimpleIdentity, aby ve vzdálené budoucnosti mohl být interfaceNette\Security\IIdentitypřejmenován naIdentity
Utils
Nette\Utils\Arrays::searchKey()přejmenováno nagetKeyOffset()Nette\Utils\Callback::closure()je zastaralý ve prospěchClosure::fromCallable()Nette\Utils\Reflection::toString()přidává()za název funkce/metodyNette\Utils\Strings::toAscii()vyvolá notice, pokud není přítomen ext-intl