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\ILatteFactory
Nette\Caching\IStorage
,Nette\Caching\IBulkReader
,Nette\Caching\Storages\IJournal
Nette\Database\IConventions
,Nette\Database\ISupplementalDriver
(nyníNette\Database\Driver
)Nette\Mail\IMailer
Latte\ILoader
,Latte\Runtime\IHtmlString
(nyníLatte\Runtime\HtmlStringable
),Latte\Runtime\ISnipperDriver
,Latte\IMacro
Nette\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\Configurator
byla 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\Context
naNette\Database\Explorer
kvůli konzistenci s pojmenováním Database Explorer - rozhraní
Nette\Database\IRow
aNette\Database\IRowContainer
jsou 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
cookieSecure
je nyní defaultně ‚auto‘- volba
session.cookieSecure
je zastaralá, místo ní se používáhttp.cookieSecure
- cookie
nette-samesite
př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::$cookieHttpOnly
je 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
\xAA
je zastaralá ve prospěch\uAAAA
Security
- rozhraní
Nette\Security\Authenticator
se liší odIAuthenticator
signaturou metodyautheticate(string $user, string $password)
- rozhraní
Nette\Security\UserStorage
se 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\IIdentity
př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