Sugerencias para Organizar el Código Procesal
Aunque escribo sobre la programación orientada a objetos y soy fanático de ella, no escribo mucho sobre los tiempos en los que estoy trabajando con una base de código procesal.
La programación procedimental es un paradigma de programación, derivado de la programación estructurada, basado en el concepto de llamada a procedimiento. Los procedimientos, también conocidos como rutinas, subrutinas o funciones, simplemente contienen una serie de pasos computacionales a realizar.
A veces, vengo de esto por los requisitos de un proyecto, a veces es de un proyecto que he heredado, oa veces por otra cosa.
Creo que es importante que, como programadores, no mantengamos un paradigma tan alto que evitemos trabajar con otras formas de escribir código. Después de todo, el acto de escribir código se trata, en esencia, de resolver un problema.
Cómo se resuelve el problema puede considerarse secundario.
Independientemente, cada vez que estoy trabajando con una base de código; sin embargo, está escrito, todavía trato de asegurarme de que esté organizado de una manera coherente, lo más fácil de seguir posible y que pueda mantenerse a lo largo del tiempo.
Pensé en compartir cómo me acerco a escribir complementos de WordPress usando programación procedimental versus programación orientada a objetos y cómo organizo el código procedimental.
Por lo menos, tal vez esto le dé algunas ideas para un proyecto actual o futuro.
Código Orgánico Procesal
Cuando se trata de trabajar con código de procedimiento, existe un gran potencial para incluir casi todo en un único archivo monolítico.
No soy de este enfoque porque hace que sea más difícil encontrar dónde reside algo en el archivo (al menos si eres alguien que acaba de entrar en un proyecto).
Con ese fin, estas son las cosas que suelo hacer.
- Acciones y filtros separados. Por lo general, tomaré todas las acciones y las colocaré en un archivo y tomaré todos los filtros y los colocaré en otro archivo. También es posible separar aún más estos archivos en subdirectorios (si no también en espacios de nombres) en función de sus áreas de interés. Por ejemplo, cualquier acción relacionada con el área de administración puede ir a un subdirectorio de administración .
- Escriba un archivo de depuración. Normalmente incluyo un script de depuración simple en un complemento para que pueda mostrar fácilmente la información de depuración en la pantalla, escribir en el archivo de registro de depuración o escribir en ambos. Esto puede ser una conveniencia al menos, pero ayuda a proporcionar una manera de ver fácilmente lo que sucede sin necesidad de iniciar Xdebug y recorrer el código (a menos que sea un problema más complicado).
- cargador automático. Si está utilizando código de procedimiento, es posible que no esté utilizando espacios de nombres en absoluto, pero si es así, también incluyo un cargador automático que he escrito para facilitar la inclusión automática de archivos. Esto es diferente al cargador automático que genera Composer, pero sigue haciendo lo mismo.
Obviamente, no hay nada intrínsecamente complicado en las recomendaciones anteriores. De hecho, diría que cualquiera de los anteriores, especialmente el primer paso, puede contribuir en gran medida a mejorar la capacidad de administración del código de procedimiento.
El archivo del complemento principal
Si opta por hacer todo lo anterior, la versión final del archivo de arranque del complemento debería ser realmente simple. De hecho, puede parecer algo tan simple como esto :
<?php
/**
* Plugin Name: Acme Plugin
* Plugin URI: https://acmeplugins.com/acme
* Description: This is the plugin description.
* Version: 1.0.0
* Author: Acme Plugins Co.
* Author URI: https://acmeplugins.com/acme
* License: GPL-3.0+
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt
*
* @since 1.0.0
* @package Acme
*/
namespace Acme;
defined( 'WPINC') || die;
// Include the custom autoloader.
require_once __DIR__. '/inc/autoload.php';
// Include action and filters.
require_once __DIR__. '/inc/actions.php';
require_once __DIR__. '/inc/filters.php';
Nuevamente, esto supone que está aplicando las tres recomendaciones. De lo contrario, su implementación puede variar.
