Nette Documentation Preview

syntax
Editory & nástroje
******************

.[perex]
Můžete být zdatný programátor, ale teprve s dobrými nástroji se z vás stane mistr. V této kapitole najdete tipy na důležité nástroje, editory a pluginy.


IDE editor
==========

Rozhodně doporučujeme pro vývoj používat plnohodnotné IDE, jako je třeba PhpStorm, NetBeans, VS Code, a nikoliv jen textový editor s podporou PHP. Rozdíl je opravdu zásadní. Není důvod se spokojit s pouhým editorem, který sice umí obarvovat syntaxi, ale nedosahuje možností špičkového IDE, které přesně napovídá, hlídá chyby, umí refaktorovat kód a spoustu dalšího. Některé IDE jsou placené, jiné dokonce zdarma.

**NetBeans IDE** má podporu pro Nette, Latte a NEON už vestavěnou.

**PhpStorm**: nainstalujte si tyto pluginy v `Settings > Plugins > Marketplace`
- [Nette |https://plugins.jetbrains.com/plugin/28342-nette]
- [Latte |https://plugins.jetbrains.com/plugin/24218-latte-support] nebo [Latte Pro |https://plugins.jetbrains.com/plugin/19661-latte-pro]
- [NEON |https://plugins.jetbrains.com/plugin/28338-neon] nebo [NEON / Nette support |https://plugins.jetbrains.com/plugin/18387-neon-nette-support]
- Nette Tester

**VS Code**: najděte v marketplace "Nette Latte + Neon" plugin.

Také si propojte Tracy s editorem. Při zobrazení chybové stránky pak půjde kliknout na jména souborů a ty se otevřou v editoru s kurzorem na příslušné řádce. Přečtěte si, [jak systém nakonfigurovat|tracy:open-files-in-ide].


PHPStan
=======

PHPStan je nástroj, který odhalí logické chyby v kódu dřív, než jej spustíte.

Nainstalujeme jej pomocí Composeru:

```shell
composer require --dev phpstan/phpstan-nette
```

Vytvoříme v projektu konfigurační soubor `phpstan.neon`:

```neon
includes:
	- vendor/phpstan/phpstan-nette/extension.neon

parameters:
	scanDirectories:
		- app

	level: 5
```

A následně jej necháme zanalyzovat třídy ve složce `app/`:

```shell
vendor/bin/phpstan analyse app
```

Vyčerpávající dokumentaci najdete přímo na [stránkách PHPStan |https://phpstan.org].

Aby byl PHPStan na Nette kódu ještě chytřejší, nainstalujte si také [Nette PHPStan Rules |phpstan-rules]. Přidá přesnější návratové typy Nette helperů, zúží typy komponent a formulářových prvků, odstraní nemožné `|false`/`|null` z mnoha nativních PHP funkcí a ztiší známá falešná hlášení specifická pro Nette.


Code Checker
============

[Code Checker|code-checker:] zkontroluje a případně opraví některé z formálních chyb ve vašich zdrojových kódech:

- odstraňuje [BOM |nette:glossary#BOM]
- kontroluje validitu [Latte |latte:] šablon
- kontroluje validitu souborů `.neon`, `.php` a `.json`
- kontroluje výskyt [kontrolních znaků |nette:glossary#Kontrolní znaky]
- kontroluje, zda je soubor kódován v UTF-8
- kontroluje chybně zapsané `/* @anotace */` (chybí hvězdička)
- odstraňuje ukončovací `?>` u PHP souborů
- odstraňuje pravostranné mezery a zbytečné řádky na konci souboru
- normalizuje oddělovače řádků na systémové (pokud uvedete volbu `-l`)


Composer
========

[Composer] je nástroj na správu závislostí v PHP. Dovoluje nám deklarovat libovolně složité závislosti jednotlivých knihoven a pak je za nás nainstaluje do našeho projektu.


Requirements Checker
====================

Šlo o nástroj, který testoval běhové prostředí serveru a informoval, zda (a do jaké míry) je možné framework používat. V současnosti je Nette možné používat na každém serveru, který má minimální požadovanou verzi PHP.

Editory & nástroje

Můžete být zdatný programátor, ale teprve s dobrými nástroji se z vás stane mistr. V této kapitole najdete tipy na důležité nástroje, editory a pluginy.

IDE editor

Rozhodně doporučujeme pro vývoj používat plnohodnotné IDE, jako je třeba PhpStorm, NetBeans, VS Code, a nikoliv jen textový editor s podporou PHP. Rozdíl je opravdu zásadní. Není důvod se spokojit s pouhým editorem, který sice umí obarvovat syntaxi, ale nedosahuje možností špičkového IDE, které přesně napovídá, hlídá chyby, umí refaktorovat kód a spoustu dalšího. Některé IDE jsou placené, jiné dokonce zdarma.

NetBeans IDE má podporu pro Nette, Latte a NEON už vestavěnou.

PhpStorm: nainstalujte si tyto pluginy v Settings > Plugins > Marketplace

VS Code: najděte v marketplace „Nette Latte + Neon“ plugin.

Také si propojte Tracy s editorem. Při zobrazení chybové stránky pak půjde kliknout na jména souborů a ty se otevřou v editoru s kurzorem na příslušné řádce. Přečtěte si, jak systém nakonfigurovat.

PHPStan

PHPStan je nástroj, který odhalí logické chyby v kódu dřív, než jej spustíte.

Nainstalujeme jej pomocí Composeru:

composer require --dev phpstan/phpstan-nette

Vytvoříme v projektu konfigurační soubor phpstan.neon:

includes:
	- vendor/phpstan/phpstan-nette/extension.neon

parameters:
	scanDirectories:
		- app

	level: 5

A následně jej necháme zanalyzovat třídy ve složce app/:

vendor/bin/phpstan analyse app

Vyčerpávající dokumentaci najdete přímo na stránkách PHPStan.

Aby byl PHPStan na Nette kódu ještě chytřejší, nainstalujte si také Nette PHPStan Rules. Přidá přesnější návratové typy Nette helperů, zúží typy komponent a formulářových prvků, odstraní nemožné |false/|null z mnoha nativních PHP funkcí a ztiší známá falešná hlášení specifická pro Nette.

Code Checker

Code Checker zkontroluje a případně opraví některé z formálních chyb ve vašich zdrojových kódech:

  • odstraňuje BOM
  • kontroluje validitu Latte šablon
  • kontroluje validitu souborů .neon, .php.json
  • kontroluje výskyt kontrolních znaků
  • kontroluje, zda je soubor kódován v UTF-8
  • kontroluje chybně zapsané /* @anotace */ (chybí hvězdička)
  • odstraňuje ukončovací ?> u PHP souborů
  • odstraňuje pravostranné mezery a zbytečné řádky na konci souboru
  • normalizuje oddělovače řádků na systémové (pokud uvedete volbu -l)

Composer

Composer je nástroj na správu závislostí v PHP. Dovoluje nám deklarovat libovolně složité závislosti jednotlivých knihoven a pak je za nás nainstaluje do našeho projektu.

Requirements Checker

Šlo o nástroj, který testoval běhové prostředí serveru a informoval, zda (a do jaké míry) je možné framework používat. V současnosti je Nette možné používat na každém serveru, který má minimální požadovanou verzi PHP.