Nette Documentation Preview

syntax
Обновление
**********


Обновление до версии 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 и старый синтаксис ссылок больше не поддерживаются.