2012-05-14 9 views

Respuesta

11

Tendrá que crear un estándar de codificación personalizado si desea anular las funciones integradas. Esto es solo cuestión de crear un archivo XML con la definición del estándar.

En su caso, desea el estándar de codificación Zend completo, pero no desea la regla de convención de nomenclatura particular sobre nombres de variables. Por lo tanto, se crearía un archivo llamado mystandard.xml (nombre que lo que quiera y ponerlo donde quieras) y poner en el siguiente contenido:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom Zend coding standard.</description> 
<rule ref="Zend"> 
    <exclude name="Zend.NamingConventions.ValidVariableName"/> 
</rule> 
</ruleset> 

Hay mucho más que puede hacer para personalizar su estándar, incluyendo traer cheques de otros estándares, sobrescribir mensajes o silenciar algunos de ellos. Puede echar un vistazo a los documentos aquí: http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

La última vez que revisé, PHPStorm no le permitió usar estándares de codificación personalizados, por la razón que sea. Normalmente, debe escribir el nombre del estándar como la ruta completa al archivo mystandard.xml. Si PHPStorm todavía no le permite hacer eso, la única manera de engañarlo es instalar realmente su estándar personalizado.

Tenga en cuenta que esto no es algo que normalmente necesita hacer y es un poco complicado. Pero si quieres probarlo, así es como lo haces:

  1. Encuentra dónde está instalado PHPCS en tu sistema. Si no sabe dónde está eso, intente pear config-show | grep php_dir. PHP_CodeSniffer estará en un directorio debajo de allí. Para mí, pera se instala en /usr/local/PEAR, por lo PHP_CodeSniffer se encuentra en /usr/local/PEAR/PHP/CodeSniffer
  2. Crear un nuevo directorio llamado MyStandard bajo /usr/local/PEAR/PHP/CodeSniffer/Standards
  3. Ponga su archivo mystandard.xml directamente allí, pero cambie el nombre a ruleset.xml

Para confirmar su se ha instalado el estándar, ejecute phpcs -i. Debería ver

The installed coding standards are MySource, MyStandard, PEAR, PHPCS, Squiz and Zend 

Ahora, PhpStorm mostrará (con suerte) MyStandard como una opción en el menú desplegable. Si no aparece, probablemente hayan codificado la lista y no haya forma de que funcione sin alterar directamente el estándar de codificación Zend.

Espero que la información te ayude a encontrar una solución. Si no, siempre se puede ejecutar PHPCS directamente en la línea de comandos usando el estándar de costumbre:

phpcs --standard=/path/to/mystandard.xml /path/to/code 
0

La lista de normas no está codificado, se obtiene a partir de phpcs. Instalar su propio estándar como se describió anteriormente hará el trabajo.

+0

Pasé la mayor parte de la tarde tratando de hacer que esto funcione. PHPStorm ni siquiera cargará la lista de estándares instalados, las únicas opciones en la configuración del inspector están en blanco y personalizadas, e incluso seleccionando la opción de validación personalizada nunca se muestra. Puedo obtener phpcs para ejecutar CLI correctamente, pero sería bueno que funcione según lo prescrito en los documentos para PHPStorm. –

2

Es posible agregar su propio conjunto de reglas personalizado en phpstorm, esto se puede hacer en la configuración del proyecto => inspecciones => "Validación del código PHP Sniffer", usando el estándar de codificación "Personalizado" y estableciendo el directorio raíz de su conjunto de reglas personalizadoxml

Cuestiones relacionadas