Recuerdo cuando empezaba a programar con PHP, no tenía a nadie que me guiara y acababa realizando mucho código espagueti, llegué al punto que necesitaba hacer cambios y decía: “PEro tengo esta función aquí, pero también la tengo acá, tengo que cambiar muchas funciones” poco a poco fui mejorando mis prácticas.
Creo que el ejemplo más común de código espagueti es cuando mezclas HTML con PHP, acabas creando una chapuza horrible que lo miras y dices “WTF is this?” lo peor que puedes hacer con PHP es imprimir HTML mediante la instrucción echo, en serio, no lo hagas.
Una forma fácil de ejemplificar el código espagueti y una buena solución es, tomando el ejemplo de la clase, un sistema que generará archivos de excel dependiendo de lo que se necesite, podríamos tener algo así:
<?php
if($generar_archivo_para_clientes){
// TODO el codigo para generar el Excel para el cliente
}
else {
// Exactamente el MISMO código para generar el Excel para los proveedores
}
Aquí estariamos repitiendo código, y lo único que cambia es para quién lo vamos a generar, por lo que una mejor solución podría ser:
<?php
class Excel {
public function generar($generar_para) {
// TODO El codigo para generar el archivo
}
}
$excel = new Excel();
if($generar_archivo_para_clientes) {
$excel->generar("clientes");
}
else {
$excel->generar("proveedores");
}
Y de esta forma estamos reutilizando código, y solo le tenemos que dar mantenimiento al código una sola vez, y es más legible, por su puesto, podríamos tener la clase en un archivo diferente y cargarla mediante composer…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?