# PhpStorm

PhpStorm è un ambiente di sviluppo integrato (IDE) commerciale multi-piattaforma pensato per PHP, sviluppato dalla società ceca JetBrains.
PhpStorm fornisce un editor per PHP, HTML e JavaScript con analisi del codice on-the-fly, prevenzione degli errori e refactoring automatici per codice PHP e JavaScript. L'autocompletamento del codice in PhpStorm supporta PHP dalla versione 5.3 in poi (progetti moderni e legacy), inclusi generatori, coroutine, la parola chiave finally, elenchi in foreach, namespace, chiusure, traits e array a sintassi breve. Include un editor SQL completo coi risultati di query modificabili.
PhpStorm è scritto in Java. Gli utenti possono estendere l'IDE installando plugin creati per PhpStorm o scrivendone di propri. Il software comunica anche con origini esterne come XDebug.
Tutte le funzionalità disponibili in WebStorm sono a loro volta incluse in PhpStorm, in aggiunta al supporto a PHP e database. WebStorm viene fornito con i plug-in JavaScript preinstallati (come per Node.js).

## Funzionalità chiave
### Editor PHP

* PhpStorm fornisce un editor di codice avanzato per PHP con colorazione della sintassi, configurazione estesa della formattazione del codice, controllo al volo degli errori e autocompletamento del codice.
* Supporto a PHP 5.3 e superiori, inclusi generatori, coroutine, parola chiave finally, elenchi in foreach, utilizzo di empty sul risultato di chiamate di funzione e altre espressioni, traits, chiusure, accesso dei membri della classe in istanza, sintassi breve di array, dereferenziazione di array su chiamata di funzione, valori letterali binari, espressioni in chiamate statiche, supporta tipi restituiti e suggerimenti di tipo scalare e visibilità costante, ecc. Può essere utilizzato per progetti PHP sia moderni che legacy.
* L'autocompletamento del codice finalizza classi, metodi, nomi di variabili e parole chiave PHP, oltre ai nomi comunemente usati per i campi e le variabili a seconda del tipo.
* Supporto allo stile di codifica (PSR1/PSR2, Drupal, Symfony, Zend).
* Supporto a PHPDoc . L'IDE fornisce suggerimenti per il completamento del codice in base alle annotazioni @property, @method e @var.
* Rilevatore di codice duplicato.
* PHP Code Sniffer (phpcs) che controlla al volo i code smells.
* Refactoring (Rinomina, Introduci variabile, Introduci costante, Introduci campo, Variabile inlinea, Sposta membro statico, Estrai interfaccia).
* Scrittura dei template Smarty e Twig (evidenziazione degli errori di sintassi; completamento delle funzioni e degli attributi Smarty; inserimento automatico di parentesi graffe, virgolette e tag di chiusura accoppiati; e altro).
* Visualizzazione MVC per i framework Symfony e Yii.
* Supporto a PHAR.

### Ambiente di sviluppo

* Supporto a SQL e database (refactoring dello schema di database in tempo reale, generazione di script di migrazione dello schema, esportazione dei risultati delle query in file o appunti, modifica di stored procedure, ecc.).
* Deploy remoto tramite FTP, SFTP, FTPS ecc. con sincronizzazione automatica.
* Integrazione dei sistemi di controllo versione (Git insieme a funzionalità GitHub specifiche, Subversion, Mercurial, Perforce, CVS, TFS) che consente di eseguire comandi (commit, merge, diff, ecc.) direttamente dall'IDE.
* Cronologia locale (tiene traccia di eventuali modifiche nel codice in locale).
* PHP UML (diagrammi di classe UML per codice PHP con refactoring chiamati direttamente dal diagramma).
* Supporto a phing (completamento automatico, verifica tag standard, proprietà, nomi target, valori degli attributi del percorso nei file di compilazione).
* Integrazione dei tracker di segnalazioni.
* Supporto a Vagrant e Docker, console SSH e strumenti remoti.
* Google App Engine per il supporto PHP.

### Debug e test

* Debugger visivo semplice da configurare (Xdebug, Zend Debugger) per l'ispezione di variabili locali rilevanti per il contesto e di watcher definiti dall'utente, inclusi array e oggetti complessi e modifica in tempo reale dei valori.
* Gli script possono essere profilati direttamente da PhpStorm con XDebug o Zend Debugger. È fruibile un report aggregato e l'utente può passare direttamente dalle statistiche di esecuzione alla funzione nel codice PHP.
* I test PHPUnit possono essere sviluppati in PhpStorm ed eseguiti istantaneamente da una directory, file o classe (usando le opzioni del menu contestuale) con copertura del codice.

### Funzioni JavaScript, CSS e HTML

* Completamento del codice per JavaScript, HTML e CSS (per tag, parole chiave, etichette, variabili, parametri e funzioni).
* Supporto a HTML5.
* Live Edit: le modifiche al codice possono essere visualizzate immediatamente nel browser senza ricaricare la pagina.
* Supporto a CSS / SASS / SCSS / LESS (completamento del codice, evidenziazione degli errori, validazione, ecc.).
* Supporto a Emmet (Zen Coding).
* Navigazione del codice e ricerca degli utilizzi (Go to declaration/symbol, Find Usages).
* Supporto a ECMAScript Harmony.
* Refactoring JavaScript (Rinomina, Estrai variabile/funzione, Variabile/funzione in linea, Sposta/Copia, Eliminazione sicura, Estrai script incorporato nel file).
* Debugger JavaScript e unit test.

## Politica di licenze e aggiornamenti

Nel novembre 2015 JetBrains è passata a dare in licenza PhpStorm su base di abbonamento. Gli abbonamenti annuali o mensili gestiti per 12 mesi consecutivi ricevono anche una "licenza di fallback perpetua" alla versione principale disponibile al momento dell'acquisto. PhpStorm è disponibile per singoli sviluppatori, aziende e organizzazioni. Ulteriori licenze scontate e complementari sono disponibili per startup, studenti e insegnanti e progetti open source non commerciali. Queste licenze complementari richiedono l'approvazione e non includono la clausola di fallback perpetua, perciò hanno una scadenza.