Nette Documentation Preview

syntax
Ustvarite svojo prvo aplikacijo!
********************************

.[perex]
Spoznajte ogrodje Nette in ustvarite preprost blog s komentarji. Začnimo!

Po prvih dveh poglavjih boste imeli svoj delujoči blog in pripravljeni boste objavljati svoje odlične objave, čeprav bodo funkcije po zaključku teh dveh poglavij precej omejene. Da bi bile stvari za vaše uporabnike prijetnejše, preberite tudi naslednja poglavja in še naprej izboljšujte svojo aplikacijo.

.[tip]
Ta vadnica predpostavlja, da ste dokončali dokument [Namestitev |nette:installation] in uspešno nastavili svoje orodje. Prav tako predpostavlja, da razumete [objektno usmerjeno programiranje v PHP |nette:introduction-to-object-oriented-programming].

Uporabite PHP 8.1 ali novejšo različico. Celotno aplikacijo lahko najdete [na GitHubu |https://github.com/nette-examples/quickstart/tree/v4.0].


Dobrodošla stran .[#toc-the-welcome-page]
=========================================

Začnimo z ustvarjanjem novega projekta v imeniku `nette-blog`:

```shell
composer create-project nette/web-project nette-blog
```

V tem trenutku se mora zagnati pozdravna stran spletnega projekta. Preizkusite jo tako, da odprete brskalnik in odprete naslednji naslov URL:

```
http://localhost/nette-blog/www/
```

in videli boste pozdravno stran ogrodja Nette:

[* qs-welcome.webp .{url: http://localhost/nette-blog/www/} *]

Aplikacija deluje in zdaj jo lahko začnete spreminjati.

.[note]
Če imate težave, [poskusite z nekaj nasveti |nette:troubleshooting#Nette Is Not Working, White Page Is Displayed].


Vsebina spletnega projekta .[#toc-web-project-s-content]
========================================================

Spletni projekt ima naslednjo strukturo:

/--pre
<b>nette-blog/</b>
├── <b>app/</b>              ← application directory
│   ├── <b>Core/</b>         ← osnovni potrebni razredi
│   ├── <b>UI/</b>           ← predstavniki, predloge in podobno.
│   │   └── <b>Home/</b>     ← Domači imenik predstavnikov
│   └── <b>Bootstrap.php</b> ← booting class Bootstrap
├── <b>bin/</b>              ← scripts for the command line
├── <b>config/</b>           ← configuration files
├── <b>log/</b>              ← error logs
├── <b>temp/</b>             ← temporary files, cache, …
├── <b>vendor/</b>           ← libraries installed by Composer
│   └── <b>autoload.php</b>  ← autoloading of libraries installed by Composer
└── <b>www/</b>              ← public folder - the only place accessible from browser
    └── <b>index.php</b>     ← initial file that launches the application
\--

V imeniku `www` so shranjene slike, JavaScript, CSS in druge javno dostopne datoteke. To je edini imenik, ki je neposredno dostopen iz brskalnika, zato lahko sem usmerite korenski imenik svojega spletnega strežnika (to lahko nastavite v programu Apache, vendar to storimo pozneje, saj zdaj to ni pomembno).

Najpomembnejši imenik za vas je `app/`. V njem najdete datoteko `Bootstrap.php`, znotraj katere je razred, ki naloži ogrodje in konfigurira aplikacijo. Vključi [samodejno nalaganje |robot-loader:] ter nastavi [razhroščevalnik |tracy:] in [poti |application:routing].


Očistite .[#toc-cleanup]
========================

Spletni projekt vsebuje pozdravno stran, ki jo lahko odstranimo - odstranite datoteko `app/UI/Home/default.latte` in jo nadomestite z besedilom "Hello world!".


[* qs-hello.webp .{url:-} *]


Tracy (Debugger) .[#toc-tracy-debugger]
=======================================

Izjemno pomembno orodje za razvoj je [razhroščevalnik Tracy. |tracy:] Poskusite narediti nekaj napak v svoji datoteki `app/UI/Home/HomePresenter.php` (npr. odstranite oglati oklepaj iz definicije razreda HomePresenter) in si oglejte, kaj se bo zgodilo. Pojavila se bo stran z rdečim zaslonom in razumljivim opisom napake.

[* qs-tracy.avif .{url:-}(debugger screen) *]

Tracy vam bo bistveno pomagal pri lovljenju napak. Upoštevajte tudi plavajočo vrstico Tracy v spodnjem desnem kotu, ki vas obvešča o pomembnih podatkih v času izvajanja.

[* qs-tracybar.webp .{url:-} *]

V produkcijskem načinu je Tracy seveda onemogočen in ne razkriva nobenih občutljivih informacij. Namesto tega se vse napake shranijo v imenik `log/`. Preizkusite ga. V naslovu `app/Bootstrap.php` poiščite naslednji del kode, odkomentirajte vrstico in spremenite parameter klica metode v `false`, tako da bo videti takole:

```php .{file:app/Bootstrap.php}
...
$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');
...
```

Po osvežitvi spletne strani bo stran z rdečim zaslonom zamenjalo uporabniku prijazno sporočilo:

[* qs-fatal.webp .{url:-}(error screen) *]

Zdaj poglejte v imenik `log/`. Tam boste našli dnevnik napak (v datoteki exception.log) in tudi stran s sporočilom o napaki (shranjeno v datoteki HTML z imenom, ki se začne s `exception`).

Ponovno komentirajte vrstico `// $configurator->setDebugMode(false);`. Tracy samodejno omogoči razvojni način v okolju `localhost` in ga drugje onemogoči.

Zdaj lahko odpravimo napako in nadaljujemo z načrtovanjem naše aplikacije.


Pošljite zahvalo .[#toc-send-thanks]
====================================

Pokazali vam bomo trik, ki bo razveselil avtorje odprte kode. Knjižnicam, ki jih uporablja vaš projekt, lahko na GitHubu preprosto dodate zvezdico. Preprosto zaženite:

```shell
composer thanks
```

Preizkusite!

{{priority: -1}}
{{sitename: Nette Quickstart}}

Ustvarite svojo prvo aplikacijo!

Spoznajte ogrodje Nette in ustvarite preprost blog s komentarji. Začnimo!

Po prvih dveh poglavjih boste imeli svoj delujoči blog in pripravljeni boste objavljati svoje odlične objave, čeprav bodo funkcije po zaključku teh dveh poglavij precej omejene. Da bi bile stvari za vaše uporabnike prijetnejše, preberite tudi naslednja poglavja in še naprej izboljšujte svojo aplikacijo.

Ta vadnica predpostavlja, da ste dokončali dokument Namestitev in uspešno nastavili svoje orodje. Prav tako predpostavlja, da razumete objektno usmerjeno programiranje v PHP.

Uporabite PHP 8.1 ali novejšo različico. Celotno aplikacijo lahko najdete na GitHubu.

Dobrodošla stran

Začnimo z ustvarjanjem novega projekta v imeniku nette-blog:

composer create-project nette/web-project nette-blog

V tem trenutku se mora zagnati pozdravna stran spletnega projekta. Preizkusite jo tako, da odprete brskalnik in odprete naslednji naslov URL:

http://localhost/nette-blog/www/

in videli boste pozdravno stran ogrodja Nette:

Aplikacija deluje in zdaj jo lahko začnete spreminjati.

Če imate težave, poskusite z nekaj nasveti.

Vsebina spletnega projekta

Spletni projekt ima naslednjo strukturo:

nette-blog/
├── app/              ← application directory
│   ├── Core/         ← osnovni potrebni razredi
│   ├── UI/           ← predstavniki, predloge in podobno.
│   │   └── Home/     ← Domači imenik predstavnikov
│   └── Bootstrap.php ← booting class Bootstrap
├── bin/              ← scripts for the command line
├── config/           ← configuration files
├── log/              ← error logs
├── temp/             ← temporary files, cache, …
├── vendor/           ← libraries installed by Composer
│   └── autoload.php  ← autoloading of libraries installed by Composer
└── www/              ← public folder - the only place accessible from browser
    └── index.php     ← initial file that launches the application

V imeniku www so shranjene slike, JavaScript, CSS in druge javno dostopne datoteke. To je edini imenik, ki je neposredno dostopen iz brskalnika, zato lahko sem usmerite korenski imenik svojega spletnega strežnika (to lahko nastavite v programu Apache, vendar to storimo pozneje, saj zdaj to ni pomembno).

Najpomembnejši imenik za vas je app/. V njem najdete datoteko Bootstrap.php, znotraj katere je razred, ki naloži ogrodje in konfigurira aplikacijo. Vključi samodejno nalaganje ter nastavi razhroščevalnik in poti.

Očistite

Spletni projekt vsebuje pozdravno stran, ki jo lahko odstranimo – odstranite datoteko app/UI/Home/default.latte in jo nadomestite z besedilom „Hello world!“.

Tracy (Debugger)

Izjemno pomembno orodje za razvoj je razhroščevalnik Tracy. Poskusite narediti nekaj napak v svoji datoteki app/UI/Home/HomePresenter.php (npr. odstranite oglati oklepaj iz definicije razreda HomePresenter) in si oglejte, kaj se bo zgodilo. Pojavila se bo stran z rdečim zaslonom in razumljivim opisom napake.

debugger screen

Tracy vam bo bistveno pomagal pri lovljenju napak. Upoštevajte tudi plavajočo vrstico Tracy v spodnjem desnem kotu, ki vas obvešča o pomembnih podatkih v času izvajanja.

V produkcijskem načinu je Tracy seveda onemogočen in ne razkriva nobenih občutljivih informacij. Namesto tega se vse napake shranijo v imenik log/. Preizkusite ga. V naslovu app/Bootstrap.php poiščite naslednji del kode, odkomentirajte vrstico in spremenite parameter klica metode v false, tako da bo videti takole:

...
$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');
...

Po osvežitvi spletne strani bo stran z rdečim zaslonom zamenjalo uporabniku prijazno sporočilo:

error screen

Zdaj poglejte v imenik log/. Tam boste našli dnevnik napak (v datoteki exception.log) in tudi stran s sporočilom o napaki (shranjeno v datoteki HTML z imenom, ki se začne s exception).

Ponovno komentirajte vrstico // $configurator->setDebugMode(false);. Tracy samodejno omogoči razvojni način v okolju localhost in ga drugje onemogoči.

Zdaj lahko odpravimo napako in nadaljujemo z načrtovanjem naše aplikacije.

Pošljite zahvalo

Pokazali vam bomo trik, ki bo razveselil avtorje odprte kode. Knjižnicam, ki jih uporablja vaš projekt, lahko na GitHubu preprosto dodate zvezdico. Preprosto zaženite:

composer thanks

Preizkusite!