Configuracion emacs compatible con PEAR Coding Standards
El php-mode es un modo mayor de emacs que sirve para programar en lenguage PHP.
Ofrece colorizacion de sintaxis, y autoindentado segun el contexto.
Un comando que uso a menudo es indent line or region, que nos permite marcar una region, o inclusive todo el buffer y realizar la operacion de autoindentado.
php-mode usa el indentado del modo c, el cual por defecto esta configurado en 2.
Siguiendo las recomendaciones de PEAR Coding Standards
modifique el archivo de configuracion de emacs para cambiar el indentado a 4.
Tambien agregue la opcion indent-tabs-mode para que al pulsar la tecla TAB, complete el indentado con espacios en blanco. Esto ultimo evita problemas con los sistemas de versionado.
Archivo de configuracion .emacs
Este es el codigo que he agregado al final del archivo ~/.emacs
;; PEAR Coding Standards (defun pear/php-mode-init() "Set some buffer-local variables." (setq case-fold-search t) (setq indent-tabs-mode nil) (setq fill-column 85) (setq c-basic-offset 4) (c-set-offset 'arglist-cont 0) (c-set-offset 'arglist-intro '+) (c-set-offset 'case-label 4) (c-set-offset 'arglist-close 0) ) (add-hook 'php-mode-hook 'pear/php-mode-init)
PHP_CodeSniffer
Tambien te puede interesar esta herramienta que sirve para verificar la indentacion y los estandares de codificacion en PHP.
Se instala con el siguiente comando:
sudo pear install PHP_CodeSniffer
La ruta del programa es la siguiente: /usr/bin/phpcs.
Se puede ejecutar desde linea de comandos, y por parametro simplemente recibe el directorio o archivo a procesar.
La salida de ejecucion devuelve todos los incumplimientos del estandard de codificacion.
Ejemplo de ejecucion:
phpcs data/index.php
Produce la siguiente salida (recortada)
FILE: /media/data/public_html/data/index.php -------------------------------------------------------------------------------- FOUND 111 ERROR(S) AND 11 WARNING(S) AFFECTING 114 LINE(S) -------------------------------------------------------------------------------- 2 | ERROR | Missing file doc comment 3 | ERROR | "require_once" is a statement, not a function; no parentheses | | are required 5 | ERROR | Perl-style comments are not allowed. Use "// Comment." or "/* | | comment */" instead. 7 | WARNING | Line exceeds 85 characters; contains 96 characters 10 | ERROR | You must use "/**" style comments for a class comment 11 | ERROR | Expected 0 spaces before opening brace; 1 found 12 | ERROR | Line indented incorrectly; expected at least 4 spaces, found 2 13 | ERROR | Line indented incorrectly; expected at least 4 spaces,