Skip to content
Permalink
Browse files

version 3.0 & PHP 7.1

  • Loading branch information...
dg committed Feb 20, 2019
1 parent 17893e4 commit 83e72176713a4efc42a0a069f1f927f939ecebd9
@@ -115,13 +115,13 @@ Náš základní `composer.json` tedy může vypadat takto
/--code javascript
{
"require": {
"php": ">=5.6.1",
"nette/nette": "~2.4.0"
"php": ">=7.1.1",
"nette/nette": "~3.0.0"
}
}
\--

Říkáme zde, že naše aplikace (nebo knihovna) vyžaduje balíček `nette/nette` a chce nejnovější verzi, která odpovídá `~2.4.0` (tj. nejnovější setinkovou verzi Nette 2.4), a taky že běží pouze na PHP `5.6.1` a novějším.
Říkáme zde, že naše aplikace (nebo knihovna) vyžaduje balíček `nette/nette` a chce nejnovější verzi, která odpovídá `~3.0.0` (tj. nejnovější setinkovou verzi Nette 3.0), a taky že běží pouze na PHP `7.1.1` a novějším.

Máme tedy v kořenu projektu soubor `composer.json` a spustíme instalaci

@@ -162,7 +162,7 @@ Nette Framework je díky centrálnímu repozitáři přístupný vždy, ale uká
}
],
"require": {
"nette/nette": "~2.4.0",
"nette/nette": "~3.0.0",
}
}
\--
@@ -35,7 +35,7 @@ Application
Chyby
-----

`errorPresenter` říká, jaký presenter se má zavolat, dojde-li v naší aplikaci k chybě. Jak takový presenter může vypadat, [najdeme v sandboxu |https://github.com/nette/sandbox/blob/v2.4/app/presenters/ErrorPresenter.php].
`errorPresenter` říká, jaký presenter se má zavolat, dojde-li v naší aplikaci k chybě. Jak takový presenter může vypadat, [najdeme v sandboxu |https://github.com/nette/sandbox/blob/v3.0/app/presenters/ErrorPresenter.php].

Parametr `catchExceptions` ovlivňuje, zda dojde k zavolání error presenteru. Změnou hodnoty na `true` můžeme v debug módu ověřit správnou funkčnost error presenteru.

@@ -209,7 +209,7 @@ http:
self, unsafe-inline # for browsers that support CSP1
]

cspReportOnly: # Content Security Policy Report Only (od nette/http 2.4.10)
cspReportOnly: # Content Security Policy Report Only
default-src: self
report-uri: 'https://my-report-uri-endpoint'
\--
@@ -272,7 +272,7 @@ Standardní mailer je SendmailMailer, uvedením `smtp` aktivujeme SmtpMailer.
Routování
=========

Routování obvykle definujeme v RouterFactory, takovou třídu [najdeme v sandboxu](https://github.com/nette/sandbox/blob/v2.4/app/router/RouterFactory.php#L17-L22).
Routování obvykle definujeme v RouterFactory, takovou třídu [najdeme v sandboxu](https://github.com/nette/sandbox/blob/v3.0/app/router/RouterFactory.php#L17-L22).
Můžeme je však definovat i v konfiguračním souboru:

/--neon
@@ -15,7 +15,7 @@ Přidá jednořádkové textové políčko (třída [TextInput |api:Nette\Forms\
| `Form::EMAIL` | je hodnota platná e-mailová adresa?
| `Form::URL` | je hodnota absolutní URL?
| `Form::PATTERN` | testuje oproti regulárnímu výrazu celou hodnotu, tj. jako by byl obalen znaky ^ a $ | `string $pattern`
| `Form::PATTERN_ICASE` | jako `Form::PATTERN`, ale nezávislé na velikosti písmen; od nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN_ICASE` | jako `Form::PATTERN`, ale nezávislé na velikosti písmen | `string $pattern`
| `Form::INTEGER` | je hodnota celočíselná?
| `Form::NUMERIC` | alias pro `Form::INTEGER`
| `Form::FLOAT` | je hodnota číslo?
@@ -87,8 +87,8 @@ Přidá políčko pro upload souboru (třída [UploadControl |api:Nette\Forms\Co
| `Form::MAX_FILE_SIZE` | ověřuje maximální velikost souboru | `int $bytes`
| `Form::MIME_TYPE` | ověření MIME type | `string $mimeType` nebo `$mimeTypes[]`. Může obsahovat zástupné znaky, např. `video/*`
| `Form::IMAGE` | ověření, že jde o obrázek JPEG, PNG nebo GIF
| `Form::PATTERN` | testuje jméno souboru oproti regulárnímu výrazu; od nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN_ICASE` | jako `Form::PATTERN`, ale nezávislé na velikosti písmen; od nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN` | testuje jméno souboru oproti regulárnímu výrazu | `string $pattern`
| `Form::PATTERN_ICASE` | jako `Form::PATTERN`, ale nezávislé na velikosti písmen | `string $pattern`

/--php
$form->addUpload('avatar', 'Avatar:')
@@ -368,7 +368,7 @@ Když se formulář odešle tlačítkem *enter*, za odesílací tlačítko se po

Handlery událostí `onSuccess` a `onClick` se volají **pouze v případě, že je odeslání validní**. Uvnitř obslužných metod tedy nemusíme validitu ověřovat. Formulář má ještě událost `onSubmit`, která se volá vždy nezávisle na validitě.

Občas se může hodit formulář resetovat do stavu před jeho odesláním. To je možné zařídit zavoláním metody `reset()` (dostupné od nette/forms verze 2.4.6) na odeslaném formuláři:
Občas se může hodit formulář resetovat do stavu před jeho odesláním. To je možné zařídit zavoláním metody `reset()` na odeslaném formuláři:
/--php
$form->isSubmitted(); // true
$form->reset(); //formulář je nyní ve stavu, jako by nebyl nikdy odeslán
@@ -152,7 +152,7 @@ $httpResponse->setCode(Nette\Http\Response::S404_NOT_FOUND);
echo $httpResponse->getCode(); // 404
\--

Kvůli lepší srozumitelnosti zdrojového kódu doporučujeme pro kód používat místo čísla [předdefinované konstanty |https://api.nette.org/2.4/Nette.Http.IResponse.html#S100_CONTINUE].
Kvůli lepší srozumitelnosti zdrojového kódu doporučujeme pro kód používat místo čísla [předdefinované konstanty |https://api.nette.org/3.0/Nette.Http.IResponse.html#S100_CONTINUE].

Metoda `setContentType($type, $charset=null)` mění hlavičku `Content-Type`:

@@ -15,6 +15,6 @@ Poznejme spolu Nette Framework, při vytváření jednoduchého blogu s komentá

Již po prvních dvou kapitolách budeme mít svůj vlastní funkční blog a budeme moci publikovat své skvělé příspěvky i když funkce budou zatím do značné míry omezeny. Měli byste si přečíst také následující kapitoly, kde si naprogramujeme přidávání komentářů, editování článků a na závěr blog zabezpečíme.

Kompletní aplikaci naleznete [na GitHubu |https://github.com/nette/tutorial-quickstart/tree/v2.4].
Kompletní aplikaci naleznete [na GitHubu |https://github.com/nette/tutorial-quickstart/tree/v3.0].

Tento QuickStart byl napsán pro Nette Framework 2.4.0 a PHP 5.6, nebo novější. Zkontrolujte si svoji verzi.
Tento QuickStart byl napsán pro Nette Framework 3.0.0 a PHP 7.1, nebo novější. Zkontrolujte si svoji verzi.
@@ -168,7 +168,7 @@ Pojďme zobrazit příspěvky z blogu - šablonu upravíme následovně:
{/block}
\--

Pokud obnovíme prohlížeč, uvidíme výpis všech příspěvků. Výpis zatím není moc hezký, ani barevný, proto můžeme do souboru `www/css/style.css` přidat pár [CSS stylů |https://github.com/nette/tutorial-quickstart/blob/v2.4/www/css/style.css] a zalinkovat jej v layoutu (soubor `@layout.latte`):
Pokud obnovíme prohlížeč, uvidíme výpis všech příspěvků. Výpis zatím není moc hezký, ani barevný, proto můžeme do souboru `www/css/style.css` přidat pár [CSS stylů |https://github.com/nette/tutorial-quickstart/blob/v3.0/www/css/style.css] a zalinkovat jej v layoutu (soubor `@layout.latte`):

/--html
...
@@ -33,7 +33,7 @@ class PostPresenter extends Nette\Application\UI\Presenter
}
\--

Nesmíme zapomenou uvést správný namespace `App\Presenters`, který podléhá nastavení [mapování presenterů |https://github.com/nette/tutorial-quickstart/blob/v2.4/app/config/config.neon#L6-L7].
Nesmíme zapomenou uvést správný namespace `App\Presenters`, který podléhá nastavení [mapování presenterů |https://github.com/nette/tutorial-quickstart/blob/v3.0/app/config/config.neon#L6-L7].

Metoda `renderShow` vyžaduje jeden argument - ID jednoho konkrétního článku, který má být zobrazen. Poté tento článek načte z databáze a předá ho do šablony.

@@ -2,7 +2,7 @@ Requirements Checker
********************

.[perex]
Nette Framework 2.4 vyžaduje **PHP verze 5.6.0 nebo vyšší** a klade jisté (byť minimální) požadavky na prostředí webového serveru. Ověřte si, zda váš server tyto minimální požadavky splňuje.
Nette Framework 3.0 vyžaduje **PHP verze 7.1.0 nebo vyšší** a klade jisté (byť minimální) požadavky na prostředí webového serveru. Ověřte si, zda váš server tyto minimální požadavky splňuje.

Součástí základníhu skeletonu aplikace, známého jako [Sandbox|https://github.com/nette/sandbox], je nástroj nazvaný Requirements Checker, který otestuje běhové prostředí serveru a informuje, zda (a do jaké míry) je možné framework používat.

@@ -22,7 +22,7 @@ Zelený nápis „Congratulations! Server configuration meets the minimum requir
|-------------------
| Požadavek | Vysvětlení
|-------------------
| PHP version | Minimálně PHP 5.6.0
| PHP version | Minimálně PHP 7.1.0
| .htaccess file protection | Kontroluje, zda lze pomocí .htaccess zakázat přístup do chráněných složek
| .htaccess mod_rewrite | Kontroluje, zda je k dispozici mod_rewrite pro [routování |routing]
| Function ini_set() | Přítomnost této funkce je důležitá z bezpečnostních důvodů
@@ -113,13 +113,13 @@ The simplest `composer.json` can look like this:
/--code javascript
{
"require": {
"php": ">=5.6.1",
"nette/nette": "~2.4.0"
"php": ">=7.1.1",
"nette/nette": "~3.0.0"
}
}
\--

We're saying here, that our application (or library) depends on package `nette/nette` and it wants the newest version, that matches the `~2.4.0` version constraint and also that it will only run on PHP higher or equal to `5.6.1`.
We're saying here, that our application (or library) depends on package `nette/nette` and it wants the newest version, that matches the `~3.0.0` version constraint and also that it will only run on PHP higher or equal to `7.1.1`.

So, when we have the `composer.json` file in the project root and we run

@@ -160,7 +160,7 @@ Nette Framework is always available publicly thanks to the central repository, b
}
],
"require": {
"nette/nette": "~2.4.0",
"nette/nette": "~3.0.0",
}
}
\--
@@ -35,7 +35,7 @@ Application
Errors
------

The `errorPresenter` specifies the presenter which is invoked when an error occurs. We can find [an example |https://github.com/nette/sandbox/blob/v2.4/app/presenters/ErrorPresenter.php] in the sandbox.
The `errorPresenter` specifies the presenter which is invoked when an error occurs. We can find [an example |https://github.com/nette/sandbox/blob/v3.0/app/presenters/ErrorPresenter.php] in the sandbox.

Parameter `catchExceptions` decides if the error presenter will be invoked. By changing this value to `true` in the debug mode we can test functionality of the error presenter.

@@ -205,7 +205,7 @@ http:
self, unsafe-inline # for browsers that support CSP1
]

cspReportOnly: # Content Security Policy Report Only (since nette/http 2.4.10)
cspReportOnly: # Content Security Policy Report Only
default-src: self
report-uri: 'https://my-report-uri-endpoint'
\--
@@ -267,7 +267,7 @@ Default mailer is `SendmailMailer`. By setting `smtp` you activate `SmtpMailer`.
Routing
=======

Routes are typically defined in RouterFactory, such class [can be found in a sandbox](https://github.com/nette/sandbox/blob/v2.4/app/router/RouterFactory.php#L17-L22).
Routes are typically defined in RouterFactory, such class [can be found in a sandbox](https://github.com/nette/sandbox/blob/v3.0/app/router/RouterFactory.php#L17-L22).
However, we can also define them in the configuration file:

/--neon
@@ -14,7 +14,7 @@ Adds single line text field (class [TextInput |api:Nette\Forms\Controls\TextInpu
| `Form::EMAIL` | is value a valid email address?
| `Form::URL` | is value a valid URL?
| `Form::PATTERN` | tests the entire value against a regular expression, kind of like it is inside ^ and a $ | `string $pattern`
| `Form::PATTERN_ICASE` | like `Form::PATTERN`, but case-insensitive; since nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN_ICASE` | like `Form::PATTERN`, but case-insensitive | `string $pattern`
| `Form::INTEGER` | is value integer?
| `Form::NUMERIC` | alias of `Form::INTEGER`
| `Form::FLOAT` | is value a floating point number?
@@ -87,8 +87,8 @@ Adds file upload field (class [UploadControl |api:Nette\Forms\Controls\UploadCon
| `Form::MAX_FILE_SIZE` | verifies maximal file size | `int $bytes`
| `Form::MIME_TYPE` | checks if MIME type is valid | `string $mimeType` or `$mimeTypes[]`. Can contain wildcards, such as `video/*`.
| `Form::IMAGE` | checks if uploaded file is JPEG, PNG or GIF
| `Form::PATTERN` | tests the file name against a regular expression; since nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN_ICASE` | like `Form::PATTERN`, but case-insensitive; since nette/forms v2.4.9 | `string $pattern`
| `Form::PATTERN` | tests the file name against a regular expression | `string $pattern`
| `Form::PATTERN_ICASE` | like `Form::PATTERN`, but case-insensitive | `string $pattern`

/--php
$form->addUpload('thumbnail', 'Thumbnail:')
@@ -369,7 +369,7 @@ If a form is submitted by pressing *enter* key, the first submit button is invok

Handlers of `onSuccess` and `onClick` events are invoked **only if the submitted values pass validation**. You don't need to validate the input inside the handler functions. The form also has `onSubmit` event, which is invoked irrespectively of the validation.

Sometimes can be useful to reset the form to its state before submitting. It can be done by invoking `reset()` (available since nette/forms version 2.4.6) method on the form:
Sometimes can be useful to reset the form to its state before submitting. It can be done by invoking `reset()` method on the form:
/--php
$form->isSubmitted(); // true
$form->reset(); // the form is now in the state as it was never submitted
@@ -152,7 +152,7 @@ $httpResponse->setCode(Nette\Http\Response::S404_NOT_FOUND);
echo $httpResponse->getCode(); // 404
\--

For better source code readability it is recommended to use [predefined constants |https://api.nette.org/2.4/Nette.Http.IResponse.html#S100_CONTINUE] instead of actual numbers.
For better source code readability it is recommended to use [predefined constants |https://api.nette.org/3.0/Nette.Http.IResponse.html#S100_CONTINUE] instead of actual numbers.

Method `setContentType($type, $charset=null)` changes `Content-Type` response header:

@@ -15,6 +15,6 @@ Get to know Nette Framework while creating a simple blog with comments. Let's be

After the first two chapters you will have your own working blog and you'll be ready to publish your awesome posts, although the features will be pretty much limited after completing these two chapters. To make things nicer for your users, you should also read the following chapters and keep improving your application.

You can find the [complete application on GitHub |https://github.com/nette/tutorial-quickstart/tree/v2.4].
You can find the [complete application on GitHub |https://github.com/nette/tutorial-quickstart/tree/v3.0].

This QuickStart was written for Nette Framework 2.4.0 and PHP 5.6 or newer. Check out your version.
This QuickStart was written for Nette Framework 3.0.0 and PHP 7.1 or newer. Check out your version.
@@ -167,7 +167,7 @@ Let’s display the blog posts - we will edit the template like this:
{/block}
\--

If you refresh your browser, you’ll see the list of your blog posts. The list isn't very fancy or colorful, so feel free to add some [shiny CSS |https://github.com/nette/tutorial-quickstart/blob/v2.4/www/css/style.css] to `www/css/style.css` and link it in a layout (file `@layout.latte`):
If you refresh your browser, you’ll see the list of your blog posts. The list isn't very fancy or colorful, so feel free to add some [shiny CSS |https://github.com/nette/tutorial-quickstart/blob/v3.0/www/css/style.css] to `www/css/style.css` and link it in a layout (file `@layout.latte`):

/--html
...
@@ -33,7 +33,7 @@ class PostPresenter extends Nette\Application\UI\Presenter
}
\--

We have to set a correct namespaces `App\Presenters` for our presenter. It depends on [presenter mapping |https://github.com/nette/tutorial-quickstart/blob/v2.4/app/config/config.neon#L6-L7.
We have to set a correct namespaces `App\Presenters` for our presenter. It depends on [presenter mapping |https://github.com/nette/tutorial-quickstart/blob/v3.0/app/config/config.neon#L6-L7.

The `renderShow` method requires one argument - the ID of the post to be displayed. Then, it loads the post from the database and passes the result to the template.

@@ -2,7 +2,7 @@ Requirements Checker
********************

.[perex]
You will need **PHP version 5.6.0 or higher** to run Nette Framework 2.4. Also, your server will have to comply with required configuration of PHP.
You will need **PHP version 7.1.0 or higher** to run Nette Framework 3.0. Also, your server will have to comply with required configuration of PHP.

Requirements Checker is tool bundled with application skeleton known as [Sandbox|https://github.com/nette/sandbox], which checks server configuration and tells you, whether you can use this framework or not.

@@ -22,7 +22,7 @@ Green message with "Congratulations!" is self explaining tells if you can use Ne
|-------------------
| Requirement | Description
|-------------------
| PHP version | PHP 5.6.0 or higher
| PHP version | PHP 7.1.0 or higher
| .htaccess file protection | Checks if you can disable access to protected folders
| .htaccess mod_rewrite | Checks if you can use mod_rewrite for [routing |routing]
| Function ini_set() | This function is required for security purposes

0 comments on commit 83e7217

Please sign in to comment.
You can’t perform that action at this time.