diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..16917098 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,46 @@ +{ + "name": "PHP", + "image": "mcr.microsoft.com/devcontainers/php", + "customizations": { + "vscode": { + "extensions": [ + "github.codespaces", + // PHP from https://github.com/devcontainers/templates/tree/main/src/php + "xdebug.php-debug", + "bmewburn.vscode-intelephense-client", + "xdebug.php-pack", + // PHP + "DEVSENSE.phptools-vscode", + "DEVSENSE.composer-php-vscode", + // linting + "EditorConfig.EditorConfig", + "dbaeumer.vscode-eslint", + "raymondcamden.CSSLint", + // testing + "maty.vscode-mocha-sidebar" + ] + }, + "codespaces": { + "repositories": { + "PrivateBin/*": { + "permissions": { + "pull_requests": "write" + } + } + } + } + }, + "features": { + "ghcr.io/devcontainers-contrib/features/mocha:2": {} + }, + "forwardPorts": [ + 8080 + ], + "postCreateCommand": [ + "composer install --no-dev --optimize-autoloader", + "sudo chmod a+x \"$(pwd)\" && sudo rm -rf /var/www/html && sudo ln -s \"$(pwd)\" /var/www/html", + "npm install --global nyc" + ], + // alternatiuve: apache2ctl start (but requires root) + "postAttachCommand": "php -S 0.0.0.0:8080" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..eea5315d --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "recca0120.vscode-phpunit", + "onecentlin.phpunit-snippets", + "devsense.profiler-php-vscode" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..e62f41ff --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch built-in server and debug", + "type": "php", + "request": "launch", + "runtimeArgs": [ + "-S", + "localhost:8000", + "-t", + "." + ], + "port": 9003, + "serverReadyAction": { + "action": "openExternally" + } + }, + { + "name": "Debug current script in console", + "type": "php", + "request": "launch", + "program": "${file}", + "cwd": "${fileDirname}", + "externalConsole": false, + "port": 9003 + }, + { + "name": "Listen for Xdebug", + "type": "php", + "request": "launch", + "port": 9003 + } + ] +}