Visual Studio Code permite utilizar perfiles, lo que permite cambiar de forma sencilla entre distintas configuraciones (extensiones instaladas, preferencias, tareas, atajos y aspecto del interfaz). Además, los perfiles se pueden compartir, lo que facilita la puesta a punto del editor en distintos ordenadores. Por desgracia, los perfiles todavía tienen algunas limitaciones, por lo que la configuración a veces no puede ser completamente automática y requiere algunos pasos finales manuales.
En esta lección se comenta cómo instalar y completar la configuración de un perfil que incluye tanto la Configuración recomendada para seguir este curso de PHP como la Configuración recomendada para seguir el curso de HTML y CSS. Consulte esas lecciones para conocer todo lo que incluye el perfil.
Referencias:
La URL del perfil recomendado para seguir estos apuntes en Windows es: https://gist.github.com/BartolomeSintes/b2ad1d8c4e87bf8015c5c136a095134f (actualizado el 14 de septiembre de 2023)
Una vez importado este perfil en Visual Studio Code, se requieren un par de ajustes adicionales que se comentan en los apartados siguientes.
Para importar el perfil de Visual Studio Code recomendado para este curso ...
Una vez importado este perfil en Visual Studio Code, se requieren un par de ajustes adicionales que se comentan en los apartados siguientes.
En un perfil no es posible exportar o importar rutas de archivos en el archivo de preferencias, por lo que la preferencia que indica la ruta al ejecutable php no está incluida en el perfil y debe añadirse de forma manual. Para facilitar esa tarea, la preferencia está incluida, pero comentada, por lo que basta con descomentarla:
...
//
// PHP: Validate: Executable path
// Ubicación del intérprete de PHP.
// "php.validate.executablePath": "C:/xampp/php/php.exe",
...
...
//
// PHP: Validate: Executable path
// Ubicación del intérprete de PHP.
"php.validate.executablePath": "C:/xampp/php/php.exe",
...
En este curso Iniciación a la programación de páginas web en PHP de mclibre.org se utilizará una carpeta como área de trabajo de Visual Studio Code (no un Área de trabajo).
En un perfil no es posible incluir archivos adicionales a los propios de Visual Studio Code, por lo que es necesario crear manualmente el archivo de configuración de la extensión PHP CS Fixer incluida en el perfil recomendado.
Este archivo debe crearse en la carpeta .vscode situada la raíz de la carpeta de trabajo. En caso de no existir esa carpeta, debe crearse.
<?php
// Apuntes del curso Programación web en PHP
// https://www.mclibre.org/consultar/php/
//
// Archivo de configuración para PHP CS Fixer
// 2022-12-05
return (new PhpCsFixer\Config())
->setRules([
'@PER' => true,
'align_multiline_comment' => ['comment_type' => 'all_multiline'],
'array_indentation' => true,
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => ['default' => 'align_single_space_minimal', 'operators' => [], ],
'cast_spaces' => ['space' => 'none'],
'combine_consecutive_issets' => true,
'concat_space' => ['spacing' => 'one'],
'explicit_indirect_variable' => true,
'function_typehint_space' => true,
'include' => true,
'linebreak_after_opening_tag' => true,
'list_syntax' => ['syntax' => 'short'],
'magic_constant_casing' => true,
'magic_method_casing' => true,
'multiline_comment_opening_closing' => true,
'multiline_whitespace_before_semicolons' => true,
'native_function_casing' => true,
'native_function_type_declaration_casing' => true,
'no_alias_language_construct_call' => true,
'no_alternative_syntax' => true,
'no_empty_statement' => true,
'no_extra_blank_lines' => true,
'no_mixed_echo_print' => ['use' => 'print'],
'no_multiline_whitespace_around_double_arrow' => true,
'no_short_bool_cast' => true,
'no_singleline_whitespace_before_semicolons' => true,
'no_spaces_around_offset' => true,
'no_superfluous_elseif' => true,
'no_unneeded_control_parentheses' => true,
'no_unneeded_curly_braces' => true,
'no_unset_cast' => true,
'no_unused_imports' => true,
'no_useless_concat_operator' => true,
'no_useless_else' => true,
'no_useless_return' => true,
'no_whitespace_before_comma_in_array' => true,
'normalize_index_brace' => true,
'object_operator_without_whitespace' => true,
'semicolon_after_instruction' => true,
'single_line_comment_style' => true,
'space_after_semicolon' => true,
'standardize_not_equals' => true,
'ternary_to_null_coalescing' => true,
'trailing_comma_in_multiline' => true,
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'whitespace_after_comma_in_array' => true,
])
->setIndent(" ")
->setLineEnding("\n");