Introductie
Visual Studio Code is een broncode tekstverwerker ontwikkeld door Microsoft voor Windows, Linux en macOS (inclusief M1 Macs). Het bevat ondersteuning voor debuggen, ingebouwde Git-besturing en GitHub, syntax highlighting, intelligente code-aanvulling, snippets en code refactoring.
Het belangrijkste kenmerk van de tekstverwerker is dat deze uitbreidbaar is en een enorme collectie extensies heeft die worden onderhouden door gebruikers en door Microsoft zelf.
Als algemene introductie is hier een presentatie over het onderwerp Joomla Development with Visual Studio Code (PDF, 1Mb), door René Kreijveld, Joomla ontwikkelaar Destiny B.V. Joomla User Group London, 16 maart 2021.
Op deze pagina geven we een lijst van aanbevolen extensies om VSCode te configureren voor ondersteuning van PHP en Joomla.
Dit is een lijst van extensies ter ondersteuning van PHP op VSCode:
- PHP Debug felixfbecker.php-debug. Debug ondersteuning voor PHP met XDebug.
- phpcs ikappas.phpcs. PHP CodeSniffer voor Visual Studio Code.
- PHP Intelephense bmewburn.vscode-intelephense-client. PHP code intelligentie voor Visual Studio Code. Alternatief: PHP IntelliSense felixfbecker.php-intellisense
- PHPUnit emallin.phpunit. Voer PHPUnit-tests uit vanuit VSCode.
- phpfmt kokororin.vscode-phpfmt. De ontbrekende phpfmt-extensie voor Visual Studio Code. De phpfmt-formatter kan indien nodig zelfs een PHP-bestand van versie 4 parsen en opmaken.
- php cs fixer junstyle.php-cs-fixer: Voor als u kiest voor de PSR-2: Coding Style Guide. PHP CS Fixer extensie voor VS Code, php formatter, php code beautify tool, html opmaken.
- PHP Namespace Resolver MehediDracula.php-namespace-resolver: PHP Namespace Resolver kan uw class importeren en uitbreiden. U kunt ook uw geïmporteerde classes sorteren op regellengte of alfabetisch.
- PHP Phan (Analyzer) tysonandre.php-phan. Phan - statische analyzer voor PHP, die valse positieven minimaliseert.
- phpmd linyang95.phpmd. VS Code extensie voor php, met gebruik van phpmd.
Het Git-protocol wordt native ondersteund in VSCode. Er zijn echter extensies om codebeheer en repositorybeheer te verbeteren. Dit is een lijst van speciale extensies voor deze taak:
- Git History donjayamanne.githistory: Git History, Zoeken en meer (inclusief git log).
- GitHub KnisterPeter.vscode-github: Deze vscode extensie integreert met GitHub.
- GitHub Pull Requests and Issues GitHub.vscode-pull-request-github: Bekijk en beheer uw GitHub pull requests en issues direct in VS Code
- gitignore codezombiech.gitignore: Een extensie voor Visual Studio Code die u helpt bij het werken met .gitignore bestanden.
- Visual Studio Code Commitizen Support KnisterPeter.vscode-commitizen: Deze vscode extensie voegt commitizen ondersteuning toe.
Dit is een lijst met extensies ter ondersteuning van Joomla in VSCode:
- Joomla Snippets anibalsanchez.vs-code-joomla-snippets. Snippets voor Joomla. Inclusief Joomla 3.x en Joomla 4 Snippets.
- PHP Getters & Setters phproberto.vscode-php-getters-setters. Maak PHP getters en setters van class-eigenschappen.
Dit is een lijst met extensies ter ondersteuning van remote SSH ontwikkeling:
- Remote - SSH ms-vscode-remote.remote-ssh: Met de Remote - SSH extensie kunt u elke externe machine met een SSH server gebruiken als uw ontwikkelomgeving. Dit kan de ontwikkeling en het oplossen van problemen in veel situaties sterk vereenvoudigen. Voor meer informatie: Remote development over SSH
- Live Share MS-vsliveshare.vsliveshare: Met Visual Studio Live Share kunt u in real-time samen met anderen bewerken en debuggen, ongeacht welke programmeertalen u gebruikt of welk type apps u bouwt. Het stelt u in staat om direct (en veilig) uw huidige project te delen, en vervolgens, indien nodig, debug-sessies, terminal-instanties, localhost webapps, spraakoproepen en meer te delen!
Dit is een lijst met handige extensies die sterk worden aanbevolen om de ontwikkeling te vergemakkelijken:
- EditorConfig for VS Code editorconfig.editorconfig EditorConfig ondersteuning voor Visual Studio Code
- change-case wmaurer.change-case: Wijzig snel de case (camelCase, CONSTANT_CASE, snake_case, etc.) van de huidige selectie of het huidige woord
- Project Manager alefragnani.project-manager: Dit helpt u om eenvoudig toegang te krijgen tot uw projecten, waar ze zich ook bevinden. Mis die belangrijke projecten niet meer.
PHP Debug Configuratie
De extensie ondersteunt de meest voorkomende configuraties van PHP XDebug. Het integreert alle VSCode functies volledig om PHP scripts te debuggen.
Bezoek de officiële documentatie om de extensie te configureren
Als voorbeeldconfiguratie voor VSCode debugging, dit is een gebruikelijke 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
}
]
}
Met betrekking tot de launch.json configuratie die felixfbecker/vscode-php-debug vereist, is dit de configuratie van PHP XDebug zelf.
Op dit moment zou uw ontwikkelomgeving xdebug-2 of xdebug-3 kunnen hebben. Ze verschillen in de vereiste parameters. Om PHP XDebug te configureren, zijn dit de meest voorkomende instellingen voor php.ini.
XDebug 2 configuratie
[XDebug]
;;;;;;;;;;;;;;;;;;;
; xdebug-2.9.8
;;;;;;;;;;;;;;;;;;;
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
; xdebug.remote_port = 9000
XDebug 3 configuratie
[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
Om meer te weten te komen over hoe XDebug intern werkt om verbinding te maken met de tekstverwerker, raadpleeg de [documentatie](Xdebug 3 — Documentation).
phpcs Configuratie
Bezoek de officiële documentatie om de extensie te configureren. De extensie ondersteunt de meest voorkomende configuraties van PHP_CodeSniffer.
Standaard wordt PHP_CodeSniffer geleverd met verschillende codeerstandaarden. Zodra de extensie is geïnstalleerd, werkt het met PSR2.
"phpcs.standard": "PSR2",
Om de extensie te configureren om de Joomla! Coding Standards toe te passen, installeer de regels volgens de officiële handleiding. Zodra de Joomla! Coding Standards is geïnstalleerd, configureer de Gebruikersinstellingen volgens dit voorbeeld:
"phpcs.standard": "/home/YOUR-USER/.../Joomla",
Configuratie van PHP Intelephense
Bezoek de intelephense documentatie om de extensie te configureren. De extensie vereist geen aanvullende configuratie.
VSCode wordt geleverd met basisondersteuning voor de PHP taal. Het is daarom waarschijnlijk een goed idee om de standaardondersteuning uit te schakelen om conflicten te voorkomen:
// Disable basic suggestions
"php.suggest.basic": false,
// To activate code suggestions in comments
"editor.quickSuggestions": { "comments": true },
Als alternatief is er ook een zeer populaire extensie: PHP IntelliSense felixfbecker.php-intellisense Geavanceerde autocompletie en refactoring ondersteuning voor PHP.
PHPUnit Configuratie
Om de extensie te configureren, bezoek de vscode phpunit documentatie
De extensie integreert PHP Unit met VSCode, zodat alle functies van PHP Unit geïntegreerd zijn met VSCode en ook geparametriseerd kunnen worden voor verdere integratie met de gebruikersinterface.
Dit is een voorbeeldconfiguratie van de extensie:
"phpunit.preferRunClassTestOverQuickPickWindow": true,
"phpunit.driverPriority": [
"Path",
"Command",
"Composer",
"Phar",
"Ssh",
"GlobalPhpUnit"
],
php cs fixer Configuratie (Alleen voor PSR2)
Om de extensie te configureren, bezoek de vscode php cs fixer documentatie. De extensie integreert PHP-CS-Fixer met VSCode, zodat alle functies van PHP-CS-Fixer geïntegreerd zijn met VSCode en ook geparametriseerd kunnen worden voor verdere integratie met de gebruikersinterface.
Om PHP-CS-Fixer automatisch toe te passen op PHP-bestanden, configureer de gebruikersinstellingen op deze manier:
"[php]": {
"editor.defaultFormatter": "junstyle.php-cs-fixer",
},
"php-cs-fixer.onsave": true,
PHP Phan (Analyzer) Configuratie
Om de extensie te configureren, bezoek de officiële documentatie. Dit is een voorbeeldconfiguratie van de extensie:
"phan.phpExecutablePath": "/usr/bin/php",
"phan.analyzedFileExtensions": [
"php"
],
phpmd Configuratie
Om de extensie te configureren, bezoek de officiële documentatie. De extensie vereist geen aanvullende configuratie.
Dit is een voorbeeldconfiguratie van de extensie:
"phpmd.command": "php /home/YOUR-USER/.../phpmd/phpmd.phar",
"phpmd.rules": "/home/YOUR-USER/.../phpmd-rulesets/phpmd_config.xml",
EditorConfig configureren voor VS Code
EditorConfig is een bestandsformaat en verzameling van tekstverwerker plugins voor het behouden van consistente codeerstijlen tussen verschillende tekstverwerkers en IDE's.
Om de tekstverwerker naar wens in te stellen, maak een bestand .editorconfig aan:
; EditorConfig helps developers define and maintain consistent
; coding styles between different editors and IDEs.
; For more visit http://editorconfig.org.
root = true
; Choose between lf or rf on "end_of_line" property
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
# editorconfig-tools is unable to ignore longs strings or urls
max_line_length = null
[*.html]
indent_style = tab
# PSR-2
# [*.php]
# indent_size = 4
# indent_style = space
# Joomla! Coding Standards
[*.php]
indent_size = 4
indent_style = tab
[*.md]
trim_trailing_whitespace = false
[*.yml]
indent_style = space
indent_size = 2