Skip to content

Commit

Permalink
after <div> must be empty line
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Dec 3, 2019
1 parent 351704d commit 53bd6d6
Show file tree
Hide file tree
Showing 38 changed files with 76 additions and 0 deletions.
2 changes: 2 additions & 0 deletions cs/access-control.texy
Expand Up @@ -2,13 +2,15 @@ Přihlašování & oprávnění uživatelů
**********************************

<div class=perex>

Pomalu žádná webová aplikace se neobejde bez mechanismu přihlašování uživatelů a ověřování uživatelských oprávnění. V této kapitole si povíme o:

- přihlašování a odhlašování uživatelů
- ověření uživatelských oprávnění
- zabezpečení proti zranitelnostem
- vlastní autentikátory a autorizátory
- Access Control List

</div>

Než se do tématu pustíme, řekněme si, že v příkladech budeme používat službu `user`, což je objekt třídy [api:Nette\Security\User]. Službu můžeme v presenteru získat voláním `$user = $this->getUser()`, nebo si ji vyžádáme pomocí [Dependency Injection |dependency-injection].
Expand Down
2 changes: 2 additions & 0 deletions cs/ajax.texy
Expand Up @@ -2,11 +2,13 @@ AJAX & snippety
***************

<div class=perex>

Moderní webové aplikace dnes běží napůl na serveru, napůl v prohlížeči. AJAX je tím klíčovým spojovacím prvkem. Jakou podporu nabízí Nette Framework?

- posílání výřezů šablony (tzv. snippety)
- předávání proměnných mezi PHP a JavaScriptem
- debugování AJAXových aplikací

</div>

AJAXový požadavek lze detekovat metodou služby [zapouzdřující HTTP požadavek |http-request-response#http-pozadavek] `$httpRequest->isAjax()` (detekuje podle HTTP hlavičky `X-Requested-With`). Uvnitř presenteru je k dispozici "zkratka" v podobě metody `$this->isAjax()`.
Expand Down
2 changes: 2 additions & 0 deletions cs/bootstrap.texy
Expand Up @@ -2,11 +2,13 @@ Bootstrap
*********

<div class=perex>

Bootstrap je zaváděcí soubor, který inicializuje prostředí a vytvoří Dependency Injection (DI) kontejner. Řekneme si:

- jak se konfiguruje pomocí NEON souborů
- jak na produkční a vývojářský režim
- jak vytvořit DI kontejner

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/caching.texy
Expand Up @@ -2,11 +2,13 @@ Cache
*****

<div class=perex>

Cache `[keš]` zrychlí vaši aplikaci tím, že jednou náročně získaná data uloží pro příští použití. Ukážeme si:

- jak používat cache
- jak změnit úložiště
- jak správně cache invalidovat

</div>

Nette Framework nabízí velmi intuitivní API pro práci s cache. Ostatně, nic jiného jste asi ani nečekali, že? ;-) Než si ukážeme první příklad, je třeba zvážit, kam se mají data fyzicky ukládat. Můžeme použít databázi, server Memcached, nebo nejdostupnější úložiště, což je pevný disk:
Expand Down
2 changes: 2 additions & 0 deletions cs/components.texy
Expand Up @@ -2,12 +2,14 @@ Komponenty a ovládací prvky
***************************

<div class=perex>

Komponenty představují základní kámen znovupoužitelnosti kódu, usnadňují vám práci a dovolují využívat práce komunity. Komponenty jsou báječné. Řekneme si

- jak psát komponenty?
- co jsou to signály?
- jak posílat flash zprávy?
- jak na AJAX?

</div>

Komponenta představuje vykreslitelný objekt. Jsou to například formuláře, menu, ankety a podobně. V rámci jedné stránky jich může existovat libovolný počet. Na stránkách https://componette.com můžete najít open-source komponenty, které sem umístili dobrovolníci z komunity okolo Nette Framework.
Expand Down
2 changes: 2 additions & 0 deletions cs/composer.texy
Expand Up @@ -2,11 +2,13 @@ Composer
********

<div class=perex>

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. Ukážeme si

- jak Composer nainstalovat
- použití v novém či stávajícím projektu
- vytvoření a publikace vlastního balíčku

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/database-explorer.texy
Expand Up @@ -2,11 +2,13 @@ Database Explorer
*****************

<div class=perex>

Nette Database Explorer (dříve Nette Database Table, NDBT) zásadním způsobem zjednodušuje získávání dat z databáze bez nutnosti psát SQL dotazy.

- pokládá efektivní dotazy
- nepřenáší zbytečná data
- má elegantní syntax

</div>

Používání Database Explorer začíná od tabulky a to zavoláním metody `table()` nad objektem [Nette\Database\Context|api:]. Jak ho nejsnadněji získat je [popsáno tady |database core#Připojení a konfigurace], pokud však používáme Nette Database Explorer samostatně, lze jej [vytvořit i ručně|#Ruční vytvoření Context].
Expand Down
2 changes: 2 additions & 0 deletions cs/dependency-injection.texy
Expand Up @@ -2,10 +2,12 @@ Dependency Injection
********************

<div class=perex>

Podstatou Dependency Injection (DI) je odebrat třídám zodpovědnost za získávání objektů, které potřebují ke své činnosti (tzv. služeb) a místo toho jim služby předávat při vytváření. Řekneme si:

- co je principem Dependency Injection?
- jak vytvářet DI kontejnery

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/di-configuration.texy
Expand Up @@ -2,11 +2,13 @@ DI: konfigurace služeb
**********************

<div class=perex>

Dependency Injection (DI) kontejner se snadno konfiguruje pomocí souborů NEON. Řekneme si:

- jak používat parametry
- jak přidat a nastavit služby
- jak vložit více konfiguračních souborů

</div>

Samotná konfigurace se obykle zapisuje v NEON souboru. Se syntaxí se můžete seznámit na [hřišti |https://ne-on.org].
Expand Down
2 changes: 2 additions & 0 deletions cs/di-usage.texy
Expand Up @@ -2,10 +2,12 @@ DI: Získávání závislostí
************************

<div class=perex>

Existuje několik možností, jakým do presenterů, komponent a služeb můžeme dostat (injektovat) jejich závislosti. V tomto článku probereme:

* obecné možnosti získávání závislostí, nejen těch z [DI Containeru |dependency-injection] v Nette a
* konkrétní příklady a doporučení pro presentery, komponenty a služby.

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/forms.texy
Expand Up @@ -2,12 +2,14 @@ Formuláře
*********

<div class=perex>

Nette Forms výrazně usnadňují vytváření a zpracování webových formulářů ve vašich aplikacích. Co všechno umí?

- validovat odeslaná data na straně serveru i JavaScriptem
- poskytují zabezpečení proti zranitelnostem
- zvládají několik režimů vykreslování
- vícejazyčnost

</div>

Nette Framework klade velký důraz na bezpečnost aplikací, a proto úzkostlivě dbá i na dobré zabezpečení formulářů. Dělá to zcela transparentně a nevyžaduje manuálně nic nastavovat. Ochrání vaše aplikace před útokem [Cross Site Scripting (XSS) |vulnerability-protection#cross-site-scripting-xss] i [Cross-Site Request Forgery (CSRF)|#Obrana před Cross-Site Request Forgery (CSRF)], odfiltruje ze vstupů kontrolní znaky, ověří validitu UTF-8 kódování nebo jestli nejsou položky vybrané v select boxech podvržené atd.
Expand Down
2 changes: 2 additions & 0 deletions cs/getting-started.texy
Expand Up @@ -2,6 +2,7 @@ Seznámení s Nette Frameworkem
*****************************

<div class=perex>

Už vás nebaví řešit opakující se úkoly, tisíce drobností, které odvádějí pozornost od práce a dělají z programování nudnou činnost? Jste na správném místě! **Framework vám ulehčí práci, budete méně psát, mít přehlednější kód a radost z práce.** Získáte:

- excelentní šablonovací systém
Expand All @@ -12,6 +13,7 @@ Už vás nebaví řešit opakující se úkoly, tisíce drobností, které odvá
- s kvalitní dokumentací a nejaktivnější komunitou v ČR
- s vyzrálým a čistým objektovým návrhem
- vedoucím k dobrým návykům a dávajícím dostatek volnosti

</div>

A to všechno zcela zdarma. To stojí alespoň za pokus, že?
Expand Down
2 changes: 2 additions & 0 deletions cs/mailing.texy
Expand Up @@ -2,13 +2,15 @@ Odesílání e-mailů
*****************

<div class=perex>

Téměř každá aplikace na webu potřebuje odesílat e-maily, ať už newslettery nebo potvrzení objednávky. Proto Nette Framework poskytuje potřebné nástroje. Naučime se:

- jak e-mail vytvořit
- jak ho odeslat
- jak přidat přílohy
- jak v e-mailu použít šablony
- jak vytvářet odkazy

</div>

Vytvoření & odeslání e-mailu
Expand Down
2 changes: 2 additions & 0 deletions cs/presenters.texy
Expand Up @@ -2,12 +2,14 @@ MVC aplikace & presentery
*************************

<div class=perex>

Seznámíme se s tím, jak se vlastně v Nette Framework tvoří aplikace. Po přečtení budete znát:

- MVC, adresářovou strukturu a soubor `Bootstrap.php`
- co jsou to presentery a akce
- jak se používají šablony
- co jsou persistentní parametry

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/robotloader.texy
Expand Up @@ -2,12 +2,14 @@ RobotLoader: autoloading tříd
*****************************

<div class=perex>

RobotLoader je nástroj, který vám zajistí komfort automatického načítání tříd pro celou vaši aplikaci včetně knihoven třetích stran.

- zbavíme se všech `require`
- budou se načítat jen potřebné skripty
- nevyžaduje se žádná striktní konvence pojmenování souborů
- lze mít i více tříd v jednom souboru

</div>

[RobotLoader |api:Nette\Loaders\RobotLoader] je nesmírně pohodlný a návykový!
Expand Down
2 changes: 2 additions & 0 deletions cs/routing.texy
Expand Up @@ -2,12 +2,14 @@ Routování URL
*************

<div class=perex>

Routování je obousměrné překládání mezi URL a akcí presenteru. Obousměrným myslíme možnost z URL odvodit akci presenteru, ale také obráceně, k akci vygenerovat odpovídající URL. Ukážeme si:

- jak zapisovat routy a vytvářet odkazy
- povíme si o SEO přesměrování
- jak routy debugovat
- jak napsat vlastní router

</div>


Expand Down
2 changes: 2 additions & 0 deletions cs/sessions.texy
Expand Up @@ -2,12 +2,14 @@ Sessions
********

<div class=perex>

HTTP je bezestavový protokol, nicméně takřka každá aplikace potřebuje stav mezi požadavky uchovávat, například obsah nákupního košíku. Právě k tomu slouží session neboli relace. Ukážeme si,

- jak používat sessions
- jak předejít jmenným konfliktům
- nastavení expirace
- zabezpečení proti zranitelnostem

</div>

Při použití sessions každý uživatel, který vstoupí na stránku, obdrží jedinečný identifikátor Session ID, který se předává v cookies. Ten slouží jako klíč k session datům. Na rozdíl od cookies, které se uchovávají na straně prohlížeče, jsou data v session uchovávána na straně serveru.
Expand Down
2 changes: 2 additions & 0 deletions cs/smartobject.texy
Expand Up @@ -2,11 +2,13 @@ SmartObject: rozšíření objektů v PHP
************************************

<div class=perex>

Nette Framework rozšiřuje objektové a vyjadřovací schopnosti PHP o několik syntaktických cukrátek. Máte rádi cukrátka? Čtěte a dozvíte se

- proč je dobré používat `Nette\SmartObject`
- co jsou to *property*
- jak vyvolávat události

</div>

V této kapitole se budeme věnovat převážně traitě `Nette\SmartObject`, která rozšiřuje objektové schopnosti PHP. Tuto traitu používají takřka všechny třídy Nette Framework. Zároveň je natolik transparentní, abyste ji mohli používat jako základ pro vaše třídy. Zkusme si říct, proč byste to měli dělat.
Expand Down
2 changes: 2 additions & 0 deletions en/access-control.texy
Expand Up @@ -2,13 +2,15 @@ Authentication & Authorization
******************************

<div class=perex>

Little to none web applications need no mechanism for user login or checking user privileges. In this chapter, we'll talk about:

- user login and logout
- verifying user privileges
- securing against vulnerabilities
- how to create custom authenticators and authorizators
- Access Control List

</div>


Expand Down
2 changes: 2 additions & 0 deletions en/ajax.texy
Expand Up @@ -2,10 +2,12 @@ AJAX & Snippets
***************

<div class=perex>

Modern web applications nowadays run half on a server and half in a browser. AJAX is the vital uniting factor. What support does Nette Framework offer?
- sending template fragments (so called *snippets*)
- passing variables between PHP and JavaScript
- AJAX applications debugging

</div>

An AJAX request can be detected using a method of a service [encapsulating a HTTP request |http-request-response#http-request] `$httpRequest->isAjax()` (detects based on the `X-Requested-With` HTTP header). There is also a shorthand method in presenter: `$this->isAjax()`.
Expand Down
2 changes: 2 additions & 0 deletions en/bootstrap.texy
Expand Up @@ -2,11 +2,13 @@ Bootstrap
*********

<div class=perex>

Nette application is easily configured using NEON files. We'll talk about:

- how to configure your application using NEON files
- how to handle production and development modes
- how to create the DI container

</div>

In charge of setting up the environment and creating a Dependency Injection (DI) container in Nette is the [Configurator |api:Nette\Configurator] class. It is used in the bootstrap file `Bootstrap.php` located in the `app/` folder.
Expand Down
2 changes: 2 additions & 0 deletions en/caching.texy
Expand Up @@ -2,11 +2,13 @@ Caching
*******

<div class=perex>

Cache accelerates your application by storing data - once hardly retrieved - for future use. We will show you:

- How to use the cache
- How to change the cache storage
- How to properly invalidate the cache

</div>

Nette Framework offers a very intuitive API for cache manipulation. After all, you wouldn't expect anything else, right? ;-) Before we proceed to the first example, we need to think about place where to store data physically. We can use a database, //Memcached// server, or the most available storage - hard drive:
Expand Down
2 changes: 2 additions & 0 deletions en/components.texy
Expand Up @@ -2,12 +2,14 @@ Components and Controls
***********************

<div class=perex>

Components are the foundation of reusable code. They make your work easier and allow you to profit from community work. Components are wonderful. We'll explain

- how to write components
- what are signals
- how to send flash messages
- how to use AJAX

</div>

A component is a renderable object. It can be a form, menu, poll etc. Within one page there can be as many components as you wish. At https://componette.com you can find open-source components which were put there by volunteers from the Nette Framework community.
Expand Down
2 changes: 2 additions & 0 deletions en/composer.texy
Expand Up @@ -2,11 +2,13 @@ Composer
********

<div class=perex>

Composer is a tool for managing your dependencies in PHP. It allows us to declare library dependencies and it will install them for us, into our project. We will learn

- how to install Composer
- use in new or existing project
- create and publish our of own package

</div>


Expand Down
2 changes: 2 additions & 0 deletions en/database-explorer.texy
Expand Up @@ -2,11 +2,13 @@ Database Explorer
*****************

<div class=perex>

Nette Database Explorer significantly simplifies retrieving data from the database without writing SQL queries.

- uses efficient queries
- no data is transmitted unnecessarily
- features elegant syntax

</div>

To use Database Explorer, start with a table - call `table()` on a [Nette\Database\Context|api:] object. The easiest way to get a context object instance is [described here |database core#Connection and Configuration], or, for case when Nette Database Explorer is used as a standalone tool, it can be [created manually|#Creating Context Manually].
Expand Down
2 changes: 2 additions & 0 deletions en/dependency-injection.texy
Expand Up @@ -2,10 +2,12 @@ Dependency Injection
********************

<div class=perex>

Purpose of the Dependecy Injection (DI) is to free classes from the responsibility for obtaining objects that they need for its operation (these objects are called **services**). To pass them these services on their instantiation instead. We'll talk over:

- What is the principle of the Dependency Injection.
- How to create DI containers.

</div>


Expand Down
2 changes: 2 additions & 0 deletions en/di-configuration.texy
Expand Up @@ -2,11 +2,13 @@ DI: Services Configuration
**************************

<div class=perex>

Dependency Injection (DI) container is easily configured using NEON files. We'll talk about:

- how to use parameters
- how to add and setup services
- how to include multiple configuration files

</div>

Configuration is usually written in NEON format. Have fun trying out the syntax at https://ne-on.org.
Expand Down

0 comments on commit 53bd6d6

Please sign in to comment.