Nette Framework: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(44 versioni intermedie di 17 utenti non mostrate)
Riga 1:
{{Software
{{Infobox - software
|Sviluppatore = [[David Grudl]], [[Nette Foundation]]
| jméno = Nette Framework
|SistemaOperativo = multipiattaforma
| logo = Nette Framework Logo.png
|Genere = web framework
| velikost loga =
|Licenza = [[Licenza MIT]]
| vývojář = [[David Grudl]], [[Nette Foundation]]
|SoftwareLibero = sì
| aktuální verze = 2.3.10<ref>{{cite web |url=https://github.com/nette/nette/releases/tag/v2.3.10 |title=Released version 2.3.10 }}</ref>
}}
| datum aktuální verze = [[13. dubna]] [[2016]]
'''Nette Framework''' è un [[framework]] open source per la creazione di applicazioni web in [[PHP]]&nbsp;5 e PHP 7. Nette Framework si focalizza sull'eliminazione dei rischi sulla sicurezza, supporta [[AJAX]], [[Don't repeat yourself|DRY]], [[KISS (principio)|KISS]], [[Model-view-controller|MVC]] e riutilizzo del codice. Utilizza la programmazione basata sugli eventi ed utilizza in gran parte l'utilizzo dei componenti. L'autore originale di Nette Framework è David Grudl e del suo sviluppo odierno se ne occupa la Nette Foundation.<ref>{{Cita web |url=https://nettefoundation.com/ |titolo=Nette Foundation |accesso=3 maggio 2019 |urlarchivio=https://web.archive.org/web/20161107062256/https://nettefoundation.com/ |dataarchivio=7 novembre 2016 |urlmorto=sì }}</ref> Nette Framework è un software libero, distribuito sotto licenza [[GNU General Public License|GNU GPL]] e licenza Nette,<ref>[https://nette.org/cs/licence Licenza] sul sito ufficiale</ref> che deriva dalla [[Licenze BSD|licenza BSD]] originale (vecchia a 4 clausole).
| připravovaná verze =2.4
| datum připravované verze =
| operační systém = [[Multiplatformní software|Multiplatformní]]
| programovací jazyk = {{#property:P277|id=Q12040790}}
| typ softwaru = Webový aplikační framework
| licence = New BSD, [[GNU General Public License|GNU GPL]]
| web = {{#property:P856|id=Q12040790}}
}}
 
L'autore di Nette Framework organizza corsi di formazione che in parte possono sostituire pezzi di documentazione. Ogni mese si svolge un incontro non formale dei sostenitori di Nette Framework, chiamato l{{'}}''ultimo sabato'' organizzato a Praga, Brno ed altre città. L'ingresso è gratis.
'''Nette Framework''' è un [[framework]] open source per la creazione di applicazioni web in [[PHP]]&nbsp;5 e PHP 7.  Nette Framework si focalizza sull'eliminazione dei rischi sulla sicurezza, supporta [[AJAX]], [[DRY]], [[KISS]], [[Model-view-controller|MVC]] e riutilizzo del codice. Utilizza la programmazione basata sugli eventi ed utilizza in gran parte l'utilizzo dei componenti. L'autore originale di Nette Framework è David Grudl e del suo sviluppo odierno se ne occupa la Nette Foundation.<ref>[http://nettefoundation.com/ Nette Foundation]</ref> Nette Framework è un software libero, distribuito sotto licenza [[GNU General Public License|GNU GPL]] e licenza Nette,<ref>[http://nette.org/cs/licence Licenční politika] na oficiálních stránkách Nette</ref> che deriva dalla [[Licenze BSD|licenza BSD]] originale (vecchia a 4 clausole).
 
L'autore di Nette Framework organizza corsi di formazione che in parte possono sostituire pezzi di documentazione.<ref>Jakub Vrána: [http://php.vrana.cz/ohlas-na-skoleni-nette.php ''Ohlas na školení Nette''], blog PHP triky</ref> Ogni mese si svolge un incontro non formale dei sostenitori di Nette Framework, chiamato l'''ultimo sabato'' organizzato a Praga, Brno ed altre città. L'ingresso è gratis.
 
== Requisiti ==
Nette Framework ha bisogno di PHP 5.3.1 o maggiore. Altri requisiti sono possibili testare sul server grazie al tool Requirements Checker<ref>[httphttps://doc.nette.org/en/requirements#toc-requirements-checker NástrojStrumento Requirements Checker]</ref>.
 
== Proprietà di Nette Framework ==
Line 31 ⟶ 22:
=== NetteLoader ===
In ambiente di produzione è possibile caricare un unico file.
<sourcesyntaxhighlight lang="php">
<?php
require_once 'Nette/loader.php';
</syntaxhighlight>
</source>
 
=== RobotLoader ===
Line 40 ⟶ 31:
* Invalidazione intelligente della cache
* Nel file netterobots.txt è possibile configurare i percorsi da ignorare
<sourcesyntaxhighlight lang="php">
$loader = new RobotLoader();
$loader->addDirectory('libs');
$loader->register();
</syntaxhighlight>
</source>
 
 
== Eliminazione e ricerca degli errori ==
Line 52 ⟶ 42:
=== Tuning ===
Strumenti di debug per catturare gli errori che derivano dalla compilazione del programma. Semplifica i classici messaggi di errore permettendo quindi un debug efficace dell'applicazione. Per utilizzarli basta semplicemente attivare il debug.
<sourcesyntaxhighlight lang="php">
<?php
require 'libs/Nette/loader.php';
Debug::enable();
</syntaxhighlight>
</source>
=== Collegamento a FireBug ===
La comunicazione tra FireBug e Nette\Debug permette di inviare i messaggi attraverso un canale separato al di fuori del browser. Le informazioni non si perdono quindi nel caso in cui il testo si deforma nella pagina, ma si visualizzano chiaramente in una nuova finestra. Gli errori a livello di E_NOTICE e E_WARNING sono inviati a FireBug in maniera automatica. E'È necessario aver installata almeno la seconda versione di FireFox. Scaricasi Firebug e FirePHP almeno la versione 0.2. Nette \ debug comunica con Firebug tramite intestazioni HTTP. E'È quindi necessario chiamare la funzione di registrazione prima che lo script PHP inizi a scrivere qualche cosa. Naturalmente è possibile attivare il buffer di uscita e il ritardo di uscita.
 
=== Console ===
Nette Debug console è una finestra pop-up in cui è possibile visualizzare una variabile.
 
<sourcesyntaxhighlight lang="php">
<?php
$pole = array(1,2,3,5);
Debug::consoleDump($pole);
</syntaxhighlight>
</source>
 
=== LogováníLog chybdegli errori ===
In un ambiente di produzione, dove non è appropriato ne auspicabile utilizzare alcuni dei metodi precedenti per visualizzare gli errori, Nette Framework ci fornisce uno strumento per catturare gli errori e registrarli in un log testuale dove si può vedere esattamente ciò che è accaduto e correggerli. Tale funzionalità deve essere abilitata ed impostare il percorso in cui è possibile scrivere.
V případě produkčního režimu, kdy není vhodné ani žádoucí využívat některou z předchozích metod výpisu chyb nám dává Nette Framework nástroj k zachycení vzniklých chyb do logu. Textového souboru, kde se můžeme přesně dozvědět co se v aplikaci stalo a případné chyby opravit.
<syntaxhighlight lang="php">
Logování chyb je třeba zapnout a nastavit cestu k adresáři, do kterého je možné zapisovat.
<source lang="php">
Debug::enable(Debug::DETECT, '%logDir%/php_error.log', 'admin@example.com');
</syntaxhighlight>
</source>
Il parametro Debug::DETECT significa che Nette deve da solo capire se è un server di produzione o di sviluppo. L'altro parametro è il percorso del log mentre l'ultimo parametro è l'indirizzo email a chi inviare un alert in caso di errori. La email viene inviata una sola volta.
Parametr Debug::DETECT říká, že má Nette samo zjistit zda se server nachází v produkčním nebo vývojovém režimu. Další parametr je cesta k logovacím souborům a poslední je E-mailová adresa, kam se bude zasílat upozorněno o vzniku chyby. Zahlcení Vaší E-mailové schránky se nemusíte bát, Nette zašle upozornění na výskyt chyby pouze jednou. Pro obnovu zasílání E-mailů je nutné vymazat textový soubor, který říká, že oznámené již bylo odesláno.
 
=== VývojovýModalità nebodi produkčnísviluppo režimo di produzione ===
Nette distingue 2 modalità in base al server in cui è installato. La modalità di sviluppo cerca di fornire tutte le informazioni al programmatore ad esempio la velocità di esecuzione routing o un dettagliato report degli errori. Nella modalità di produzione Nette nasconde determinate informazioni e permette di loggare gli errori lontano da occhi indiscreti.
Nette rozlišuje 2 režimy, pod kterými běží server. Vývojový režim se snaží nabídnout veškeré informace pro programátora o rychlosti běhu aplikace, o routování a pohodlný výpis vzniklých chyb. Naproti tomu v produkčním režimu Nette veškeré informace skryje a umožňuje logování chyb do souboru mimo oči běžného uživatele.<br />
 
Framework dokáže sám zjistit v jakém režimu se server nachází. Rozhoduje se na základě IP adresy přidělené serveru. Chybu může způsobit server běžící za proxy serverem, nebo server určený pro lokální potřeby organizace. V tomto případě je nutné nastavit aktuální režim ručně.
Nette Framework riesce da solo a capire in quale ambiente si trova. Lo capisce tramite l'indirizzo IP del fornito dal server. Se i server sono dietro a proxy il riconoscimento non potrebbe avvenire correttamente, in questo caso è necessario impostare la modalità a mano.
<source lang="php">
<syntaxhighlight lang="php">
Debug::enable(Debug::DEVELOPMENT);
Debug::enable(Debug::PRODUCTION);
</syntaxhighlight>
</source>
 
== Webové formulářeForms ==
Nette dà al programmatore uno strumento molto potente per la creazione di form. Il Framework si occupa di organizzare e controllare tutti gli elementi del modulo. Controlla anche gli accessi/invii contro un probabile attacco.
Nette dává programátorovi velmi silný nástroj pro tvorbu formulářů. Samotný framework zařídí veškeré ohlídání prvků formuláře. Ohlídá vstupy proti možným útokům.
 
=== PřednostiVantaggi di Nette Framework ===
* Contiene un forte linguaggio per la convalida
* Obsahuje velmi silný validační jazyk
* AutomatickyGenera generujeautomaticamente validačníla convalida tramite JavaScript
* Massimo controllo sui forms
* Plná moc nad vzhledem formulářů
* Supporto per la traduzione automatica
* Podpora automatického překladu
* OšetřeníControllo proticontro útokůmgli attacchi: XSS, Crosscross-Sitesite Requestrequest Forgeryforgery, UTF-8 attack
* SIlnáOttima ochranaprotezione oproticontro SQL injection, vnel případěcaso používánídi utilizzo di notORM (Nette database Nette)
<sourcesyntaxhighlight lang="php">
$form = new Form();
$form->addText('jmenoname','ZadejteInserire jménoil nome')
->addRule(Form::FILLED,'ZadejteInserire svéil jménoproprio nome');
$form->addPassword('heslopassword','ZadejteInserire svéla heslopropria password')
->addRule(Form::FILLED,'ZadejteInserire heslola password');
$form->addSubmit('prihlasitlogin','PřihlásitLogin');
echo $form;
</syntaxhighlight>
</source>
 
=== NevýhodyRouting, NetteCool FrameworkURL ===
A differenza di molti altri frameworks, è possibile impostare il formato dell'URL, come ultima cosa nell'intera applicazione. Permette il routing bidirezionale, che viene utilizzato sia per l'analisi e la generazione dei percorsi. Il Cool URL è importante anche per il SEO, i motori di ricerca valutano l'indirizzo che diventa parte importante del sito e quindi influisce sulla posizione del motore di ricerca. Allo stesso tempo, gli indirizzi sono più facili da leggere e diventa più facile da ricordare. Nette nasconde le direttive mod_rewrite e non è necessario utilizzarle per definire le route. Ciò evita errori.
* Nezachovávání zpětné kompatibility v nových verzích{{Fakt/dne|20130325201155}}
* Nutnost občas ručně promazat cache
* Určitá nekonzistence celého interface{{Fakt/dne|20130325201155}}
* Slabá dokumentace funkcí frameworku a databázové vrstvy
* Neexistující "best practice" příklady implementace modelové vrstvy
* Databázová vrstva se chová výrazně jinak pro tabulky bez primárního klíče
* Více reklamy než objektivních informací od autora Nette{{Fakt/dne|20130325201155}}
 
Esempi di URL classico:
== Routování, Cool URL ==
Na rozdíl od většiny jiných frameworků je možné nastavit tvar URL jako poslední věc v celé aplikaci. Umožňuje to obousměrné zpracování routů, které slouží jak k parsování tak generování cest. Pěkné URL (Cool URL) je důležité také pro SEO, vyhledávače adresy vyhodnocují a stává se součástí bodování důležitostí webu a ovlivňuje tak pozici ve vyhledávači (pouze domněnka některých "SEO odborníků", URL nemá na pozici ve vyhledávači žádný vliv). Zároveň jsou adresy čitelnější a zapamatovatelnější pro uživatele stránek. Nette odstiňuje použití direktiv mod_rewrite a tak není nutné definovat tvar rout na více místech. Tím se předchází vzniku chyb.
Příklady klasických URL:
* example.com?modul=article&action=show&id=10
* example.com?modul=article&action=delete&id=10
URL při použití routy vin Nette:
* example.com/article/show/10
* example.com/article/delete/10
 
== ReferenceNote ==
<references />
 
== Externí odkazy ==
; Oficiální stránky frameworku
* [http://nette.org Oficiální stránka]
* [http://forum.nette.org/cs/ České fórum]
* [http://posobota.cz Poslední sobota]
* [http://api.nette.org/ API dokumentace]
* [http://addons.nette.org/ Doplňky, komponenty]
 
; Články o frameworku
* [http://zdrojak.root.cz/serialy/zaciname-s-nette-framework/ Zdrojak.cz: Seriál Začínáme s Nette Frameworkem]
* [http://www.root.cz/clanky/velky-test-php-frameworku-zend-nette-php-a-ror/ Root.cz: Velký test PHP frameworků: Zend, Nette, PHP a RoR]
* [http://blog.php-group.cz/2008/04/01/prednaska-o-frameworku-nette-david-grudl/ Czech PHP User Group: Přednáška o frameworku Nette – David Grudl]
* [http://php.vrana.cz/unikatni-vlastnosti-nette.php PHP triky: Unikátní vlastnosti Nette]
 
== Collegamenti esterni ==
; Přednášky on-line
; Pagine ufficiali
* [http://www.youtube.com/user/NetteFramework Oficiální seznam videí o Nette Framework]
* [https://nette.org Pagina ufficiale]
* [https://api.nette.org/ Documentazione API]
* [https://addons.nette.org/ Componenti] {{Webarchive|url=https://web.archive.org/web/20160321141622/https://addons.nette.org/ |date=21 marzo 2016 }}
'''Articolo su Nette Framework'''
 
* https://kritek.it/blog/nette-framework
{{Aplikační frameworky}}
; Supporto in italiano su Nette Framework
;* https://programmatore-php.eu/
;*https://phpprogramator.cz/
;*https://phpdeveloperexpert.com/
;* https://kritek.eu {{Webarchive|url=https://web.archive.org/web/20210302165054/https://kritek.eu/ |date=2 marzo 2021 }}
;* https://kritek.it {{Webarchive|url=https://web.archive.org/web/20210416112301/https://kritek.it/ |date=16 aprile 2021 }}
;* https://kritek.cz {{Webarchive|url=https://web.archive.org/web/20210506060404/https://kritek.cz/ |date=6 maggio 2021 }}
 
{{PHP}}
[[Kategorie:Webové aplikační frameworky]]
{{Framework per applicazioni web}}
[[Kategorie:Software v PHP]]
[[Kategorie:Svobodný software]]