En esta página:
En este año muchas cosas han cambiado en PHP, en este año se esta hablando mucho de PHP 7 e incluso también se habla de la nueva versión PHP 8 que viene en unos meses, pero hay nuevas buenas prácticas que se deben considerar llevarlas acabo y en este Post te compartiré algunas de ellas.
Antes de continuar te invito a leer los siguientes artículos:
- Que es PHP y otros detalles
- Convertir nuestros registros MySQL a JSON con PHP
- Protección de Contraseñas con Argon2 en PHP 7
- Crear un sitemap dinámico con PHP y MySQL (Corregido 29-07-2019)
- Lee más artículos en la categoría PHP
Asimismo te invito a escuchar el Podcast: “Herramientas Online Para El Trabajo En Equipo”:
Spotify: | Sound Cloud: |
Bien ahora continuemos con el Post: Buenas Prácticas para PHP.
Hasta la fecha de este Post, cerca del 70% de las páginas webs que hay Internet, están construidas con el Lenguaje de Programación PHP, esto es una realidad que nos hace ver que vale la pena seguir trabajando con PHP, pero esto al final lo decides tu, existen otros lenguajes que pueden ser de tu agrado, no hay problema y hoy toca hablar de PHP, te compartiré buenas prácticas para este Lenguaje de Programación que puedes considerar seguir.
Usa Namespaces para evitar conflictos entre nombres
Hay aplicaciones que pueden tener conflictos en diferentes nombres que se repiten, por ejemplo una función o método puede ser declarado con un nombre que ya existe, por ende tu aplicación puede presentar errores.
1 2 3 4 5 6 7 |
// Productos es un prefijo Productos_Listar_Postres // Creamos su Namespace class Productos_Listar_Postres |
Los Namespaces nos ayudan a organizar el código y evitar los conflictos de nombres, también podemos utilizar Namespaces complejos, agregando una barra inclinada (slash).
1 2 3 4 5 6 |
// Productos es un prefijo use Productos\Listar\Postres; $producto = new Postres; |
En el código anterior he declarado mi Namespace y luego dentro de la variable $producto uso el nombre de la clase Postres.
Utiliza la función Autoloader
Normalmente se suele usar en los proyectos con PHP, declaraciones con require() o include(), para llamar a un archivo, pero también puede que instanciar más archivos en tu proyecto, para evitar muchas declaraciones en el código, puedes hacer uso de la función Autoloader de PHP, si has trabajado con Frameworks como Laravel, puedes haber visto mas o menos su estructura que hace uso de la función Autoloader de PHP.
1 2 3 4 5 6 7 8 9 10 11 |
// Llamamos un modelo App\Productos\Models\Postres // Para poder llamar el modelo anterior debemos tener un estructura similar /productos productos.php /includes /models Postres.php |
La función Autoloader de PHP permite incluir archivos de manera automática y solo cuando es necesario, ya no es necesario llamar archivos manualmente utilizando require() o include(). Con la función Autoloader se sabe en que archivo habitan las clases y funciones, asimismo se puede trabajar con la herramienta autoloader, PHP-FIG y PSR-4.
Usa Arrow Functions (Funciones de flecha) para obtener funciones limpias en una sola línea
En varias ocasiones las funciones en PHP suelen ser extensas o largas, incluso cuando se crean operaciones simples, esto conlleva a re.alizar una gran cantidad de sintaxis en el código e importar manualmente variables.
1 2 3 4 5 6 7 8 9 10 |
array_map(function (Producto $producto) { return $producto->id; }, $productos) // PHP 7.4 nos permite escribir el código anterior de la siguiente manera // haciendo uso de Arrow Functions (Funciones de flecha): array_map(fn (Producto $producto) => $producto->id, $productos) |
Con la sintaxis de las Arrow Functions podemos tener una variedad de funciones como variables, valores predeterminados, parámetros y tipos de retornos, así como pasar y regresar por referencia, todo esto mientras mantienes un código legible y limpio.
Usa Preloading de PHP 7.4
Cuando utilizamos Frameworks PHP como Laravel, Zend, Codeigniter, etc. los archivos del proyecto deben vincularse correctamente y deben cargarse en cada solicitud al servidor.
La característica Preloading (Precarga), permite a los desarrolladores cargar los Framework y librerías en el OPCache, lo cual permite al servidor cargar los archivos PHP y almacenarlos en la memoria, por ende el código funcionará de manera eficiente y con mayor rapidez.
La funcionalidad Preloading de PHP se ejecuta mediante una directiva en el archivo php.ini especificando opache.preload el cual tiene un compilador de scripts que se ejecuta cuando el servidor empieza a trabajar, Preloading también se puede usar para precargar más archivos o compilarlos.
1 2 3 |
php.ini function |
Esta característica de PHP 7.4 es genial, los archivos precargados siempre permanecen en el caché de la memoria OPCache para siempre.
Has que tu código sea legible con Twig
El framework PHP Symfony, Larael y otros más, hacen uso del motor de plantillas PHP Twig y hace que el código se vea hermoso, limpio y fácil de entender. Twig admite escape de salida, herencias, bloques, entre otras características.
1 2 3 4 5 6 7 |
{% for postre in postres %} * {{ postre.nombre }} {% else %} No se han encontrado postres ! {% endfor %} |
Twig es fácil de aprender ya que no cuenta con muchas funciones y esta basado en HTML, si conoces o has trabajado con HTML, pues se te hará sencillo aprenderlo.
Conclusión
La aplicación de buenas prácticas en un proyecto mejoran la experiencia del desarrollador, le brindan una forma correcta y flexible de escribir código.
Espero que consideres usar estas buenas prácticas en tus proyectos con PHP, esto te hará ser mas profesional y podrás optimizar ciertas tareas y procesos en tus proyectos.
Nota (s)
- Los enlaces compartiros en este Post puede cambiar o continuar, esto no depende de mi, si no de las Empresas u organizaciones que les dan soporte a sus URLs.
- El código compartido en este Post puede cambiar o continuar, esto no depende de mi, si no de los desarrolladores que dan soporte a PHP.
- No olvides que debemos utilizar la tecnología para hacer cosas buenas por el mundo.
Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.