Nette Framework

Da Wikipedia, l'enciclopedia libera.
Nette Framework
Logo
SviluppatoreDavid Grudl, Nette Foundation
Ultima versione2.4 (30 settembre 2016)
Sistema operativoMultipiattaforma
LinguaggioPHP
GenereIntegrated development environment
LicenzaLicenza MIT
(licenza libera)
Sito web e

Nette Framework è un framework open source per la creazione di applicazioni web in PHP 5 e PHP 7. Nette Framework si focalizza sull'eliminazione dei rischi sulla sicurezza, supporta AJAX, DRY, KISS, 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.[1] Nette Framework è un software libero, distribuito sotto licenza GNU GPL e licenza Nette,[2] che deriva dalla licenza BSD originale (vecchia a 4 clausole).

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.

Requisiti[modifica | modifica wikitesto]

Nette Framework ha bisogno di PHP 5.3.1 o maggiore. Altri requisiti sono possibili testare sul server grazie al tool Requirements Checker[3].

Proprietà di Nette Framework[modifica | modifica wikitesto]

  • Strumenti di debug
  • Comunità attiva in Repubblica Ceca
  • Supporto per i name spaces in PHP 5.3

Autoloading[modifica | modifica wikitesto]

NetteLoader[modifica | modifica wikitesto]

In ambiente di produzione è possibile caricare un unico file.

<?php
require_once 'Nette/loader.php';

RobotLoader[modifica | modifica wikitesto]

  • Utilizza la cache, è necessario configurare il percorso
  • Invalidazione intelligente della cache
  • Nel file netterobots.txt è possibile configurare i percorsi da ignorare
$loader = new RobotLoader();
$loader->addDirectory('libs');
$loader->register();

Eliminazione e ricerca degli errori[modifica | modifica wikitesto]

Nette Framework ci offre una serie di strumenti potenti per l'individuazione e trattamento di eventuali errori.

Tuning[modifica | modifica wikitesto]

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.

<?php
require 'libs/Nette/loader.php';
Debug::enable();

Collegamento a FireBug[modifica | modifica wikitesto]

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. È 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. È 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[modifica | modifica wikitesto]

Nette Debug console è una finestra pop-up in cui è possibile visualizzare una variabile.

<?php
$pole = array(1,2,3,5);
Debug::consoleDump($pole);

Log degli errori[modifica | modifica wikitesto]

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.

Debug::enable(Debug::DETECT, '%logDir%/php_error.log', 'admin@example.com');

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 solo volta.

Modalità di sviluppo o di produzione[modifica | modifica wikitesto]

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 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.

Debug::enable(Debug::DEVELOPMENT);
Debug::enable(Debug::PRODUCTION);

Forms[modifica | modifica wikitesto]

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.

Vantaggi di Nette Framework[modifica | modifica wikitesto]

  • Contiene un forte linguaggio per la convalida
  • Genera automaticamente la convalida tramite JavaScript
  • Massimo controllo sui forms
  • Supporto per la traduzione automatica
  • Controllo contro gli attacchi: XSS, cross-site request forgery, UTF-8 attack
  • Ottima protezione contro SQL injection, nel caso di utilizzo di notORM (database Nette)
$form = new Form();
$form->addText('name','Inserire il nome')
 ->addRule(Form::FILLED,'Inserire il proprio nome');
$form->addPassword('password','Inserire la propria password')
 ->addRule(Form::FILLED,'Inserire la password');
$form->addSubmit('login','Login');
echo $form;

Routing, Cool URL[modifica | modifica wikitesto]

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 deventa più facile da ricordare. Nette nasconde le direttive mod_rewrite e non è necessario utilizzarle per definire le route. Ciò evita errori.

Esempi di URL classico:

  • example.com?modul=article&action=show&id=10
  • example.com?modul=article&action=delete&id=10

URL in Nette:

  • example.com/article/show/10
  • example.com/article/delete/10

Note[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Pagine ufficiali
Supporto italiano su Nette Framework