noviembre 12, 2020

T茅cnicas PHP para escribir c贸digo limpio y legible

Al iniciar un proyecto, los desarrolladores deben tener presente las mejores t茅cnicas PHP para escribir c贸digo limpio y legible, para que sea f谩cil de mantener y corregir al momento de tener errores. Para ello, los desarrolladores deben seguir los est谩ndares de codificaci贸n y contar con las mejores pr谩cticas.

Est谩ndares de codificaci贸n

Los est谩ndares de codificaci贸n son las reglas que establecen los desarrolladores en un proyecto. Al establecer estas reglas sirven como modelo para los miembros del proyecto, lo que ayuda a comprender el c贸digo de los dem谩s de manera f谩cil.

Con la forma adecuada de codificaci贸n, el c贸digo se volver谩 simple y limpio, lo que lo ayudar谩 a evitar errores comunes, adem谩s que se puede copiar y usar para otros proyectos.

Los est谩ndares de codificaci贸n comprenden los siguientes aspectos:

  • Nombrar variables, funciones, clases
  • Usar espacios o tabulaciones
  • Comentarios

En caso de que se desarrollen productos para WordPress como temas y complementos, se debe seguir los est谩ndares de codificaci贸n de WordPress. Sin embargo, estos est谩ndares de codificaci贸n tienen algunas reglas estrictas como son las siguientes:

Sangr铆a y longitud de l铆nea del c贸digo

Se debe usar pesta帽as en lugar de espacios para ayudar a las computadoras a mostrar el c贸digo de la manera m谩s flexible. En t茅rminos de longitud de l铆nea, una l铆nea de c贸digo debe tener entre 75 y 85 caracteres para que sea legible.

Etiqueta PHP taquigr谩fica

WordPress requiere que escriba la etiqueta PHP completa de la siguiente manera:

<? php  echo  ‘Alg煤n texto’ ; ?>

A partir de la versi贸n 5.4, PHP admite la escritura de etiquetas cortas (esta funci贸n siempre est谩 activada), por lo que puede usarla para un comando m谩s limpio:

<? = ‘Alg煤n texto’ ; ?>

Estructura de control

Estructura de control incluye si, para, mientras, entre otras. Entre estas palabras y el corchete de apertura, se debe utilizar un espacio (presionando la barra espaciadora s贸lo una vez) para distinguirlas de las llamadas a funciones.

si ((condici贸n 1 ) || (condici贸n 2 )) {

la acci贸n a implementar 1 ; } elseif ((condici贸n 3 ) && (condici贸n 4 )) { la acci贸n que se implementar谩 2 ; } else { la acci贸n que se implementar谩 por defecto; }   

Llamadas a funciones

Al llamar a una funci贸n, debe agregar un espacio entre el nombre de la funci贸n, el par茅ntesis de apertura y la primera variable y evitar escribir sin espacios. Tambi茅n debe agregar un espacio entre la coma y cada par谩metro, entre el 煤ltimo par谩metro, el corchete de cierre y el punto y coma. Para una mejor visualizaci贸n, se puede ver el siguiente ejemplo de est谩ndares de codificaci贸n de llamadas de funci贸n:

$ var = foo ( $ bar , $ baz , $ quux );

Nombrar archivos y clases

En WordPress, las clases deben tener el nombre Class_Name. Adem谩s se debe escribir en may煤scula la primera letra de cada palabra y separarla con un guion bajo.

El nombre de archivo de la clase se escribe como class-class-name.php. Se debe agregar el prefijo class-, los nombres de las clases en min煤sculas y las palabras separadas con guiones.

Sin embargo, cuando se trabaje con complementos y temas “grandes”, se requiere usar Composer para cargar archivos autom谩ticamente. En este caso, los est谩ndares de codificaci贸n anteriores ya no pueden funcionar porque Composer sigue las reglas de PSR. Por lo tanto, es crucial seguir las reglas de nomenclatura de clases y archivos PSR si usa Composer:

Nombre de la clase: en forma de ClassName (escriba con may煤scula la primera letra de cada palabra y escriba las palabras sin espacios).

Nombre de archivo: en forma de ClassName.php (el nombre del archivo es el mismo que el de la clase).

Condici贸n de yoda

En caso de que las comparaciones l贸gicas tengan variables, se debe colocar constantes, literales y llamadas a funciones a la izquierda y colocar variables a la derecha.

si ( verdadero === $ la_fuerza ) {

$ victorioso = tu_vas ( $ ser谩s ); }   

El prop贸sito de este estilo de codificaci贸n es garantizar el tipo de datos (debido al encasillamiento al comparar PHP) y evitar errores cuando escribe en =lugar de ==.

Mejores t茅cnicas PHP

Hay varias t茅cnicas de codificaci贸n que se utilizan en proyectos para hacer que el c贸digo sea m谩s 贸ptimo y m谩s f谩cil de leer y corregir. Algunas t茅cnicas se basan en los siguientes puntos:

Consistencia

Se debe codificar con el mismo estilo para una funci贸n, clase o archivo, como en el siguiente ejemplo:

<? php  if ($ args [ ‘etiqueta’ ]): ?>

 < span class = “als-field__label” > <? php echo esc_html ($ args [ ‘etiqueta’ ]); ?> </ span > <? php endif ; ?> <? php if ($ args [ ‘prefijo’ ]) { echo ‘<span class = “als-field__prefix”>’ . esc_html ($ args [ ‘prefijo’ ]). ‘</span>’ ; }     

Esto muestra la etiqueta y el prefijo. Aunque los estilos de codificaci贸n son diferentes, devuelven el mismo resultado. Por lo tanto, se deber铆an reescribirlos consistentemente de la siguiente manera:

if ( $ args [ ‘etiqueta’ ]) {

echo ‘<span class = “als-field__label”>’ , esc_html ( $ args [ ‘etiqueta’ ]), ‘</span>’ ; } if ( $ args [ ‘prefijo’ ]) { echo ‘<span class = “als-field__prefix”>’ , esc_html ( $ args [ ‘prefix’ ]), ‘</span>’ ; }    

Peque帽os bloques

Si los bloques condicionales son demasiado grandes, el c贸digo ser谩 muy dif铆cil de leer y resultar谩 m谩s dif铆cil seguir la l贸gica. Para solucionar este problema, se debe escribir peque帽os bloques condicionales. Una de las t茅cnicas para hacerlo es el “regreso temprano”, es decir, regrese lo antes posible.

Por ejemplo, el siguiente c贸digo que no ha sido optimizado:

if ( ‘none’ ! == $ field [ ‘sanitize_callback’ ]) {

     if (is_callable ($ field [ ‘sanitize_callback’ ]) {

        $ valor = call_user_func ($ campo [ ‘sanitize_callback’ ], $ valor, $ args);

    } else {

         // un c贸digo muy largo

    }

} return $ valor;

Cuando aplica esta t茅cnica el c贸digo se reescribe de la siguiente manera:

if ( ‘ninguno’ === $ campo [ ‘sanitize_callback’ ]) {

     devolver $ valor;

} if (is_callable ($ field [ ‘sanitize_callback’ ]) {

     return call_user_func ($ field [ ‘sanitize_callback’ ], $ value, $ args);

} // un c贸digo muy largo. return $ value;

Valor predeterminado

Establecer el valor predeterminado ayuda a eliminar las declaraciones condicionales que verifican la existencia de ese valor, lo que hace que su c贸digo sea legible.

A continuaci贸n se muestra el c贸digo que no se ha optimizado:

if ( isset ($ args [ ‘prefix’ ]) && $ args [ ‘prefix’ ]! == ” ) {

     echo  ‘ ‘ , esc_html ($ args [ ‘prefix’ ]), ‘ ‘ ;

} if ( isset ($ args [ ‘etiqueta’ ]) && $ args [ ‘etiqueta’ ]! == ” ) {

     echo ‘ ‘ , esc_html ($ args [ ‘etiqueta’ ]), ‘ ‘ ;

}

Despu茅s de establecer el valor predeterminado, el c贸digo se vuelve m谩s legible:

$ args = wp_parse_args ($ args, [

     ‘prefijo’ => ” ,

     ‘etiqueta’ => ” ,

]); if ($ args [ ‘prefijo’ ]) {

     echo ‘ ‘ , esc_html ($ args [ ‘prefijo’ ]), ‘ ‘ ;

} if ($ args [ ‘etiqueta’ ]) {

     echo ‘ ‘ , esc_html ($ args [ ‘etiqueta’ ]), ‘ ‘ ;

}

Salida de m煤ltiples valores

Cuando necesitamos generar una gran cantidad de textos, generalmente se codifica as铆:

echo  ‘<span class = “als-field__prefix”>’ . esc_html ( $ args [ ‘prefijo’ ]). ‘</span>’ ;

Sin embargo, este enfoque no es tan 贸ptimo como usar la funci贸n echo, la cual, permite pasar muchos par谩metros a la vez, por lo que funciona m谩s r谩pido que la funci贸n normal:

echo  ‘<span class = “als-field__prefix”>’ , esc_html ( $ args [ ‘prefix’ ]), ‘</span>’ ;

Mejorar y optimizar el c贸digo es un tema importante para los programadores. Cuanto m谩s limpio y legible sea su c贸digo, m谩s eficiente ser谩 su trabajo en equipo. Adem谩s, ser谩 m谩s f谩cil de manejar cuando haya un problema. Por lo tanto, es importante no olvidar aplicar t茅cnicas que ayuden a obtener mejores resultados.

Le铆ste: T茅cnicas PHP para escribir c贸digo limpio y legible, te recomendamos: Frameworks m谩s populares de PHP en 2020

Te invitamos a que nos sigas en nuestras redes sociales: Facebook, Twitter, Instagram y Youtube con el perfil:聽@tortugacode