Tutorial sobre Visual Studio Code
Cómo convertir las claves generadas por PUTTY para Visual Studio Code
- Abrir Puttygen
- Pulsar en Load
- Cargar nuestra clave privada
- Ir a Conversions->Export OpenSSH y exportar nuestra clave privada.
- Copiar la clave privada a la carpeta que queramos o si estamos en Linux a : ~/.ssh/id_dsa (or id_rsa).
- Crear la versión FRC 4716 de nuestra clave pública utilizando ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
- Convertir la versión RFC 4716 de nuestra clave pública a formato de OpenSSH:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
Extensiones recomendables para PHP
- Spanish Language Pack for Visual Studio Code (Microsoft https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-es)
- PHP Intelephense (Ben Mewburn https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client)
- PHP Namespace Resolver (Mehedi Hassan https://marketplace.visualstudio.com/items?itemName=MehediDracula.php-namespace-resolver)
- PHP Open PHP/HTML/Js In Browser (PrimaFuture https://marketplace.visualstudio.com/items?itemName=PrimaFuture.open-php-html-js-in-browser) (Configurar el Document Root Folder) Mayus+F6 para abrir fichero.
- PHP Getters & Setters (phproberto https://marketplace.visualstudio.com/items?itemName=phproberto.vscode-php-getters-setters)
- PHP Constructor (Mehedi Hassan https://marketplace.visualstudio.com/items?itemName=MehediDracula.php-constructor)
- PHP Debug (Felix Becker https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug)
- PHP Server (brapifra https://marketplace.visualstudio.com/items?itemName=brapifra.phpserver)
- PHP DocBlocker (Neil Brayfield https://marketplace.visualstudio.com/items?itemName=neilbrayfield.php-docblocker)
- Auto Rename Tag (Jun Han https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag)
- SFTP (liximomo https://marketplace.visualstudio.com/items?itemName=liximomo.sftp)
- MySQL (cewijan https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-mysql-client2 )
- Auto Rename Tag (Jun Han https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag )
- Material Icon Theme (Philipp Kief https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme)
A continuación configuraremos lo siguiente:
- Agregaremos en variables de entorno de Windows en el apartado de PATH: la ruta dónde tenemos nuestro PHP instalado:
- Botón derecho propiedades de Mi PC -> Configuración avanzada -> Editamos la variable del sistema PATH y agregamos la ruta dónde tenemos instalado el PHP: C:\tools\php74\php.exe
Snippets de PHP
- Vamos a Archivo -> Preferencias -> Fragmentos de código del usuario -> y Tecleamos HTML.json
- En ese archivo añadimos lo siguiente:
"php": {
"prefix": "php",
"body": [
"<?php \n\t$1\n?>"
],
"description": "php tag"
}
- De esta manera cuando estemos editando código HTML y tecleemos PHP y le demos a TAB se creará automáticamente el bloque de PHP dentro de nuestro bloque HTML.
- También podemos crear un snippet para PHP, por ejemplo cuando escribamos _try nos escribirá el bloque try catch para PDO.
- Vamos a Archivo -> Preferencias -> Fragmentos de código del usuario -> Buscaremos php.json y lo editamos:
- Código de ejemplo del fichero php.json:
{
// Place your snippets for php here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"try catch PDO": {
"prefix": "_try",
"body": [
"try {\r",
"\t$1",
"} catch (PDOException \\$error) {\r",
"\tdie (\"Error en consulta de MySQL: {\\$error->getMessage()}.\");",
"\t//die (\"Error en consulta de MySQL.\");",
"}"
],
"description": "Try catch PDO."
}
}
- Cuando en un fichero .php tecleemos _try nos aparecerá la sugerencia del snippet para generar el código automáticamente.
Asociación de archivos blade con html
Cuando estamos trabajando con Laravel por ejemplo, podemos asociar las plantillas de Blade para que las reconozca como html.
# Pulsamos CTRL + MAYUS + P
# Abrimos el fichero settings.json
# Pegamos al final del archivo esta configuración y la guardamos:
"files.associations": {
"*.blade.php": "html",
"*.tpl": "html"
}
Solución de problema de plugin VSCODE al trabajar con vuestro servidor por SSH
Para la gente que os está dando fallos en el plugin sftp de Visual Studio con el error "No Such file" en VScode, una solución es:
# Editar este archivo dentro de vuestro usuario:
c:\Usuarios\xxxxxxxxx\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js
# Modificar la línea 388:
if (code === STATUS_CODE.OK) {
# Por esta otra:
if (code === STATUS_CODE.OK || code === STATUS_CODE.NO_SUCH_FILE) {
# Guardar y reiniciar VSCode.
Si tenéis problemas con la clave de Amazon ppk para conectar con AWS
https://code.visualstudio.com/docs/remote/troubleshooting#_reusing-a-key-generated-in-puttygen
Configuración de VSCode para PHP
Para abrir el fichero de configuración settings.json:
- Pulsar CTRL + P
- Teclear settings.json
- Abrir el fichero y editarlo:
{
"php.validate.executablePath": "C:\\tools\\php74\\php.exe",
"php.validate.enable": true,
"php.validate.run": "onSave",
"editor.formatOnSave":true,
}
Ejemplo de una configuración más ampliada de settings.json
Para abrir el fichero de configuración settings.json:
- Pulsar CTRL + P
- Teclear settings.json
- Abrir el fichero y editarlo:
{
"editor.formatOnSave": true,
"php.validate.executablePath": "C:\\tools\\php74\\php.exe",
"php.validate.enable": false,
"php.suggest.basic": false,
"search.collapseResults": "alwaysCollapse",
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/.git": true,
"**/storage": true,
"**/tests": true,
"_ide_helper.php": true,
"_ide_helper_models.php": true,
"package-lock.json": true
},
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"editor.fontSize": 16,
"editor.letterSpacing": 0.5,
"editor.lineHeight": 24,
"editor.cursorBlinking": "smooth",
"editor.fontLigatures": false,
"editor.formatOnType": false,
"editor.formatOnPaste": false,
"editor.autoIndent": "advanced",
"editor.wordWrap": "on",
"git.showPushSuccessNotification": true,
"editor.gotoLocation.multipleDefinitions": "goto",
"editor.snippetSuggestions": "bottom",
"workbench.editor.enablePreview": false,
"workbench.editor.enablePreviewFromQuickOpen": false,
"editor.renameOnType": true,
"workbench.iconTheme": "Monokai Pro (Filter Spectrum) Icons",
"workbench.startupEditor": "newUntitledFile",
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"workbench.editor.untitled.hint": "hidden",
"workbench.colorTheme": "Monokai Pro (Filter Spectrum)",
"terminal.integrated.fontWeightBold": null,
"open-php-html-js-in-browser.selectedBrowser": "Chrome",
"open-php-html-js-in-browser.documentRootFolder": "D:\\xampp\\htdocs\\cursophp"
}