Nette Documentation Preview

syntax
Aktualizacja
************


Aktualizacja do wersji 3.0
==========================

Nette 3.0 dodaje deklaracje typów do parametrów metod i wartości zwracanych. Jeśli nadpisujesz taką metodę w klasie dziedziczącej po Nette (na przykład w presenterze albo komponencie), musisz dodać te same deklaracje typów, w przeciwnym razie PHP zgłosi błąd "Declaration must be compatible".

Interfejs `Nette\Application\IRouter` uległ zmianie. Metoda `match()` zwraca teraz tablicę parametrów zamiast obiektu `Nette\Application\Request`, a `constructUrl()` taką tablicę przyjmuje.

Nette sprawdza teraz, czy każdy sygnał wysyłany jest z tego samego pochodzenia (czyli z tej samej domeny i subdomeny). Ta polityka same-origin to kluczowy mechanizm bezpieczeństwa, który pomaga ograniczyć możliwe wektory ataku. Jeśli chcesz dopuścić inne pochodzenie, dodaj do metody obsługującej adnotację `@crossOrigin`:

```php
/**
 * @crossOrigin
 */
public function handleXy(): void
{
}
```

Dotyczy to również wysyłania formularzy. Jeśli chcesz dopuścić wysyłanie z innego pochodzenia, zrób to tak:

```php
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
```

Konstruktor `Nette\ComponentModel\Component` nie był używany od lat i w wersji 3.0 został usunięty. To złamanie zgodności wstecznej: jeśli w komponencie albo presenterze dziedziczącym po `Nette\Application\UI\Presenter` wywołujesz konstruktor rodzica, musisz to wywołanie usunąć.


Aktualizacja do wersji 2.4
==========================

- `Route` i `SimpleRouter` generują teraz ten sam schemat HTTP/HTTPS, którym otwarto stronę. Trasę wymagającą konkretnego protokołu można zdefiniować wraz ze schematem, np. `Route('http://domain.cz/<presenter>')`.
- Dla parametrów metod render/action typu bool (czyli z wartością domyślną true albo false) oraz dla parametrów trwałych rozróżniane są teraz `false` i `null`. Jeśli parametru nie ma w URL, jego wartością jest teraz `null` (wcześniej `false`).
- Klasa zwracana przez `Presenter::getReflection()` nie jest już potomkiem `Nette\Reflection\ClassType`, a `getReflection()->getMethod()` nie jest już potomkiem `Nette\Reflection\Method`.
- Flaga `SECURED` i `Route::$defaultFlags` są przestarzałe.


Aktualizacja do wersji 2.3
==========================

- trasy i nazwy presenterów **rozróżniają wielkość liter**. Nette ostrzega, gdy użyjesz błędnej wielkości liter w nazwie presentera; ze względów wydajnościowych maska Route nie jest sprawdzana, więc zweryfikuj ją ręcznie.
- `Route::addStyle()` i `Route::setStyleProperty()` są przestarzałe i wywołują teraz `E_USER_DEPRECATED`.
- rozszerzenie szablonów `.phtml` i stara składnia odnośników nie są już obsługiwane.

Aktualizacja

Aktualizacja do wersji 3.0

Nette 3.0 dodaje deklaracje typów do parametrów metod i wartości zwracanych. Jeśli nadpisujesz taką metodę w klasie dziedziczącej po Nette (na przykład w presenterze albo komponencie), musisz dodać te same deklaracje typów, w przeciwnym razie PHP zgłosi błąd „Declaration must be compatible“.

Interfejs Nette\Application\IRouter uległ zmianie. Metoda match() zwraca teraz tablicę parametrów zamiast obiektu Nette\Application\Request, a constructUrl() taką tablicę przyjmuje.

Nette sprawdza teraz, czy każdy sygnał wysyłany jest z tego samego pochodzenia (czyli z tej samej domeny i subdomeny). Ta polityka same-origin to kluczowy mechanizm bezpieczeństwa, który pomaga ograniczyć możliwe wektory ataku. Jeśli chcesz dopuścić inne pochodzenie, dodaj do metody obsługującej adnotację @crossOrigin:

/**
 * @crossOrigin
 */
public function handleXy(): void
{
}

Dotyczy to również wysyłania formularzy. Jeśli chcesz dopuścić wysyłanie z innego pochodzenia, zrób to tak:

$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();

Konstruktor Nette\ComponentModel\Component nie był używany od lat i w wersji 3.0 został usunięty. To złamanie zgodności wstecznej: jeśli w komponencie albo presenterze dziedziczącym po Nette\Application\UI\Presenter wywołujesz konstruktor rodzica, musisz to wywołanie usunąć.

Aktualizacja do wersji 2.4

  • Route i SimpleRouter generują teraz ten sam schemat HTTP/HTTPS, którym otwarto stronę. Trasę wymagającą konkretnego protokołu można zdefiniować wraz ze schematem, np. Route('http://domain.cz/<presenter>').
  • Dla parametrów metod render/action typu bool (czyli z wartością domyślną true albo false) oraz dla parametrów trwałych rozróżniane są teraz false i null. Jeśli parametru nie ma w URL, jego wartością jest teraz null (wcześniej false).
  • Klasa zwracana przez Presenter::getReflection() nie jest już potomkiem Nette\Reflection\ClassType, a getReflection()->getMethod() nie jest już potomkiem Nette\Reflection\Method.
  • Flaga SECURED i Route::$defaultFlags są przestarzałe.

Aktualizacja do wersji 2.3

  • trasy i nazwy presenterów rozróżniają wielkość liter. Nette ostrzega, gdy użyjesz błędnej wielkości liter w nazwie presentera; ze względów wydajnościowych maska Route nie jest sprawdzana, więc zweryfikuj ją ręcznie.
  • Route::addStyle() i Route::setStyleProperty() są przestarzałe i wywołują teraz E_USER_DEPRECATED.
  • rozszerzenie szablonów .phtml i stara składnia odnośników nie są już obsługiwane.