Introduzione
Visual Studio Code è un editor di codice sorgente sviluppato da Microsoft per Windows, Linux e macOS (inclusi i Mac con chip M1). Include supporto per il debug, controllo Git integrato e GitHub, evidenziazione della sintassi, completamento intelligente del codice, snippet e refactoring del codice.
La caratteristica principale dell'editor è di essere estensibile e dispone di un'enorme collezione di estensioni mantenute dagli utenti e da Microsoft stessa.
Come introduzione generale, questa è una presentazione sull'argomento Joomla Development with Visual Studio Code (PDF, 1Mb), di René Kreijveld, sviluppatore Joomla presso Destiny B.V. Joomla User Group London, 16 marzo 2021.
In questa pagina, descriviamo in dettaglio una lista di estensioni consigliate per configurare VSCode per supportare PHP e Joomla.
Questa è una lista di estensioni per supportare PHP su VSCode:
- PHP Debug felixfbecker.php-debug. Supporto per il debug di PHP con XDebug.
- phpcs ikappas.phpcs. PHP CodeSniffer per Visual Studio Code.
- PHP Intelephense bmewburn.vscode-intelephense-client. Intelligenza del codice PHP per Visual Studio Code. Alternativa: PHP IntelliSense felixfbecker.php-intellisense
- PHPUnit emallin.phpunit. Esegui test PHPUnit da VSCode.
- phpfmt kokororin.vscode-phpfmt. L'estensione phpfmt mancante per Visual Studio Code. Il formattatore phpfmt può analizzare e formattare anche un file PHP versione 4, se necessario.
- php cs fixer junstyle.php-cs-fixer: Nel caso si opti per la PSR-2: Coding Style Guide. Estensione PHP CS Fixer per VS Code, formattatore PHP, strumento di abbellimento del codice PHP, formattazione HTML.
- PHP Namespace Resolver MehediDracula.php-namespace-resolver: PHP Namespace Resolver può importare ed espandere la tua classe. Puoi anche ordinare le tue classi importate per lunghezza della riga o in ordine alfabetico.
- PHP Phan (Analyzer) tysonandre.php-phan. Phan - analizzatore statico per PHP, che riduce al minimo i falsi positivi.
- phpmd linyang95.phpmd. Estensione VS Code per PHP, che utilizza phpmd.
Il protocollo Git è supportato nativamente su VSCode. Tuttavia, esistono estensioni per migliorare la gestione del codice e dei repository. Questa è una lista di estensioni in evidenza per questa attività:
- Git History donjayamanne.githistory: Git History, Search and More (including git log).
- GitHub KnisterPeter.vscode-github: Questa estensione di vscode si integra con GitHub.
- GitHub Pull Requests and Issues GitHub.vscode-pull-request-github: Rivedi e gestisci le tue pull request e issue di GitHub direttamente in VS Code
- gitignore codezombiech.gitignore: Un'estensione per Visual Studio Code che ti aiuta a lavorare con i file .gitignore.
- Visual Studio Code Commitizen Support KnisterPeter.vscode-commitizen: Questa estensione di vscode aggiunge il supporto a commitizen.
Questa è una lista di estensioni per supportare Joomla su VSCode:
- Joomla Snippets anibalsanchez.vs-code-joomla-snippets. Snippet per Joomla. Include snippet per Joomla 3.x e Joomla 4.
- PHP Getters & Setters phproberto.vscode-php-getters-setters. Crea getter e setter PHP a partire dalle proprietà delle classi.
Questa è una lista di estensioni per supportare lo sviluppo remoto via SSH:
- Remote - SSH ms-vscode-remote.remote-ssh: L'estensione Remote - SSH ti consente di utilizzare qualsiasi macchina remota con un server SSH come ambiente di sviluppo. Questo può semplificare notevolmente lo sviluppo e la risoluzione dei problemi in un'ampia varietà di situazioni. Per maggiori informazioni: Sviluppo remoto via SSH
- Live Share MS-vsliveshare.vsliveshare: Visual Studio Live Share ti consente di modificare ed eseguire il debug in modo collaborativo con altri in tempo reale, indipendentemente dai linguaggi di programmazione che stai utilizzando o dai tipi di app che stai creando. Ti permette di condividere istantaneamente (e in modo sicuro) il tuo progetto corrente, e poi, se necessario, condividere sessioni di debug, istanze del terminale, applicazioni web in localhost, chiamate vocali e altro ancora!
Questa è una lista di utili estensioni fortemente consigliate per semplificare lo sviluppo:
- EditorConfig for VS Code editorconfig.editorconfig Supporto EditorConfig per Visual Studio Code
- change-case wmaurer.change-case: Cambia rapidamente il formato (camelCase, CONSTANT_CASE, snake_case, ecc.) della selezione corrente o della parola corrente
- Project Manager alefragnani.project-manager: Ti aiuta ad accedere facilmente ai tuoi progetti, indipendentemente da dove si trovino. Non perdere più di vista quei progetti importanti.
Configurazione PHP Debug
L'estensione supporta le configurazioni più comuni di PHP XDebug. Integra completamente tutte le funzionalità di VSCode per il debug degli script PHP.
Per configurare l'estensione, visita la documentazione ufficiale
Come esempio di configurazione per il debug con VSCode, ecco un comune launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
// Server Remote XDebug Port - 9000 is the default XDebug port
"port": 9000,
// Server Remote Path -> Local Project Path
"pathMappings": {
"/app/www": "${workspaceRoot}/www"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
// Local XDebug Port - 9000 is the default XDebug port
"port": 9000
}
]
}
In relazione alla configurazione del launch.json richiesta da felixfbecker/vscode-php-debug, c'è la configurazione di PHP XDebug stesso.
Attualmente, il tuo ambiente di sviluppo potrebbe avere xdebug-2 o xdebug-3. Differiscono nei parametri richiesti. Per configurare PHP XDebug, queste sono le impostazioni più comuni per php.ini.
Configurazione XDebug 2
[XDebug]
;;;;;;;;;;;;;;;;;;;
; xdebug-2.9.8
;;;;;;;;;;;;;;;;;;;
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
; xdebug.remote_port = 9000
Configurazione XDebug 3
[XDebug]
;;;;;;;;;;;;;;;;;;;
; xdebug-3.0.0
; https://xdebug.org/docs/upgrade_guide
;;;;;;;;;;;;;;;;;;;
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.discover_client_host = true
; xdebug.client_port = 9000
Per saperne di più su come XDebug funziona internamente per connettersi all'Editor, consulta la [documentazione](Xdebug 3 — Documentation).
Configurazione phpcs
Per configurare l'estensione, visita la documentazione ufficiale. L'estensione supporta le configurazioni più comuni di PHP_CodeSniffer.
Per impostazione predefinita, PHP_CodeSniffer viene fornito con diversi standard di codifica. Una volta installata l'estensione, funziona con PSR2.
"phpcs.standard": "PSR2",
Per configurare l'estensione in modo da applicare gli standard di codifica di Joomla!, installa le regole seguendo la guida ufficiale. Una volta installati gli standard di codifica di Joomla!, configura le impostazioni utente seguendo questo esempio di configurazione:
"phpcs.standard": "/home/YOUR-USER/.../Joomla",
Configurazione di PHP Intelephense
Per configurare l'estensione, visita la documentazione di intelephense. L'estensione non richiede configurazioni aggiuntive.
VSCode include un supporto di base per il linguaggio PHP. Pertanto, è probabilmente una buona idea disabilitare il supporto predefinito per evitare conflitti:
// Disabilita i suggerimenti di base
"php.suggest.basic": false,
// Per attivare i suggerimenti di codice nei commenti
"editor.quickSuggestions": { "comments": true },
Come alternativa, è disponibile anche un'estensione molto popolare: PHP IntelliSense felixfbecker.php-intellisense con supporto avanzato per l'autocompletamento e il refactoring per PHP.
Configurazione PHPUnit
Per configurare l'estensione, visita la documentazione di vscode phpunit
L'estensione integra PHP Unit con VSCode, in modo che tutte le funzionalità di PHP Unit siano integrate con VSCode e possano anche essere parametrizzate per un'ulteriore integrazione con l'interfaccia utente.
Questo è un esempio di configurazione dell'estensione:
"phpunit.preferRunClassTestOverQuickPickWindow": true,
"phpunit.driverPriority": [
"Path",
"Command",
"Composer",
"Phar",
"Ssh",
"GlobalPhpUnit"
],
Configurazione php cs fixer (solo per PSR2)
Per configurare l'estensione, visita la documentazione di vscode php cs fixer. L'estensione integra PHP-CS-Fixer con VSCode, in modo che tutte le funzionalità di PHP-CS-Fixer siano integrate con VSCode e possano anche essere parametrizzate per un'ulteriore integrazione con l'interfaccia utente.
Per applicare automaticamente PHP-CS-Fixer ai file PHP, configura le impostazioni utente in questo modo:
"[php]": {
"editor.defaultFormatter": "junstyle.php-cs-fixer",
},
"php-cs-fixer.onsave": true,
Configurazione PHP Phan (Analyzer)
Per configurare l'estensione, visita la documentazione ufficiale. Questo è un esempio di configurazione dell'estensione:
"phan.phpExecutablePath": "/usr/bin/php",
"phan.analyzedFileExtensions": [
"php"
],
Configurazione phpmd
Per configurare l'estensione, visita la documentazione ufficiale. L'estensione non richiede configurazioni aggiuntive.
Questo è un esempio di configurazione dell'estensione:
"phpmd.command": "php /home/YOUR-USER/.../phpmd/phpmd.phar",
"phpmd.rules": "/home/YOUR-USER/.../phpmd-rulesets/phpmd_config.xml",
Configurare EditorConfig per VS Code
EditorConfig è un formato di file e una raccolta di plugin per editor di testo per mantenere stili di codifica coerenti tra diversi editor e IDE.
Per configurare l'editor secondo le tue preferenze, crea un file .editorconfig:
; EditorConfig aiuta gli sviluppatori a definire e mantenere
; stili di codifica coerenti tra diversi editor e IDE.
; Per maggiori informazioni visita http://editorconfig.org.
root = true
; Scegli tra lf o rf nella proprietà "end_of_line"
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
# editorconfig-tools non è in grado di ignorare stringhe lunghe o url
max_line_length = null
[*.html]
indent_style = tab
# PSR-2
# [*.php]
# indent_size = 4
# indent_style = space
# standard di codifica di Joomla!
[*.php]
indent_size = 4
indent_style = tab
[*.md]
trim_trailing_whitespace = false
[*.yml]
indent_style = space
indent_size = 2