Обновление
**********
Обновление до версии 3.0
========================
Nette 3.0 добавляет объявления типов параметров и возвращаемых значений методов. Если вы переопределяете такой метод в классе, наследующем от Nette (например, в презентере или компоненте), вам нужно добавить те же объявления типов, иначе PHP выдаст ошибку "Declaration must be compatible".
Интерфейс `Nette\Application\IRouter` изменился. Метод `match()` теперь возвращает, а `constructUrl()` принимает массив параметров вместо объекта `Nette\Application\Request`.
Nette теперь проверяет, что каждый сигнал отправлен с того же источника (то есть с того же домена и поддомена). Эта политика одного источника - критически важный механизм безопасности, помогающий сократить возможные векторы атак. Если вы хотите разрешить другие источники, добавьте к методу-обработчику аннотацию `@crossOrigin`:
```php
/**
* @crossOrigin
*/
public function handleXy(): void
{
}
```
Это относится и к отправке форм. Если вы хотите разрешить отправку с других источников, сделайте так:
```php
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
```
Конструктор `Nette\ComponentModel\Component` не использовался годами и был удалён в версии 3.0. Это несовместимое изменение: если вы вызываете родительский конструктор в компоненте или презентере, наследующем от `Nette\Application\UI\Presenter`, вам нужно убрать этот вызов.
Обновление до версии 2.4
========================
- `Route` и `SimpleRouter` теперь порождают ту же схему HTTP/HTTPS, по которой был открыт сайт. Маршрут, требующий определённого протокола, можно задать со схемой, например `Route('http://domain.cz/<presenter>')`.
- Для параметров типа bool у методов render/action (то есть со значением по умолчанию true или false) и для постоянных параметров теперь различаются `false` и `null`. Если параметра нет в URL, его значением теперь будет `null` (раньше `false`).
- Класс, возвращаемый `Presenter::getReflection()`, больше не является потомком `Nette\Reflection\ClassType`, а `getReflection()->getMethod()` больше не является потомком `Nette\Reflection\Method`.
- Флаг `SECURED` и `Route::$defaultFlags` объявлены устаревшими.
Обновление до версии 2.3
========================
- маршруты и имена презентеров **чувствительны к регистру**. Nette предупредит вас, если вы используете неверный регистр в имени презентера; из соображений производительности маска Route не проверяется, поэтому проверьте её вручную.
- `Route::addStyle()` и `Route::setStyleProperty()` объявлены устаревшими и теперь выдают `E_USER_DEPRECATED`.
- расширение шаблонов `.phtml` и старый синтаксис ссылок больше не поддерживаются.
Обновление
Обновление до версии 3.0
Nette 3.0 добавляет объявления типов параметров и возвращаемых значений
методов. Если вы переопределяете такой метод в классе, наследующем от
Nette (например, в презентере или компоненте), вам нужно добавить те же
объявления типов, иначе PHP выдаст ошибку “Declaration must be compatible”.
Интерфейс Nette\Application\IRouter изменился. Метод match() теперь
возвращает, а constructUrl() принимает массив параметров вместо
объекта Nette\Application\Request.
Nette теперь проверяет, что каждый сигнал отправлен с того же источника
(то есть с того же домена и поддомена). Эта политика одного источника –
критически важный механизм безопасности, помогающий сократить
возможные векторы атак. Если вы хотите разрешить другие источники,
добавьте к методу-обработчику аннотацию @crossOrigin:
/**
* @crossOrigin
*/
public function handleXy(): void
{
}
Это относится и к отправке форм. Если вы хотите разрешить отправку с
других источников, сделайте так:
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
Конструктор Nette\ComponentModel\Component не использовался годами и был
удалён в версии 3.0. Это несовместимое изменение: если вы вызываете
родительский конструктор в компоненте или презентере, наследующем от
Nette\Application\UI\Presenter, вам нужно убрать этот вызов.
Обновление до версии 2.4
Route и SimpleRouter теперь порождают ту же схему HTTP/HTTPS, по
которой был открыт сайт. Маршрут, требующий определённого протокола,
можно задать со схемой, например Route('http://domain.cz/<presenter>').
- Для параметров типа bool у методов render/action (то есть со значением по
умолчанию true или false) и для постоянных параметров теперь различаются
false и null. Если параметра нет в URL, его значением теперь
будет null (раньше false).
- Класс, возвращаемый
Presenter::getReflection(), больше не является
потомком Nette\Reflection\ClassType, а getReflection()->getMethod() больше не
является потомком Nette\Reflection\Method.
- Флаг
SECURED и Route::$defaultFlags объявлены устаревшими.
Обновление до версии 2.3
- маршруты и имена презентеров чувствительны к регистру. Nette
предупредит вас, если вы используете неверный регистр в имени
презентера; из соображений производительности маска Route не
проверяется, поэтому проверьте её вручную.
Route::addStyle() и Route::setStyleProperty() объявлены устаревшими и
теперь выдают E_USER_DEPRECATED.
- расширение шаблонов
.phtml и старый синтаксис ссылок больше не
поддерживаются.