✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Suggerimenti per l’organizzazione del codice di procedura

26

Per quanto scriva – e sia un fan della programmazione orientata agli oggetti, non scrivo molto sui tempi in cui lavoro con una base di codice procedurale.

La programmazione procedurale è un paradigma di programmazione, derivato dalla programmazione strutturata, basato sul concetto di chiamata di procedura. Le procedure, note anche come routine, subroutine o funzioni, contengono semplicemente una serie di passaggi di calcolo da eseguire.

A volte, vengo da questo dalle esigenze di un progetto, a volte è da un progetto che ho ereditato, oa volte per qualcos’altro.

Penso che sia importante che, come programmatori, non teniamo un paradigma così alto da evitare di lavorare con altri modi di scrivere codice. Dopotutto, l’atto di scrivere codice riguarda, in sostanza, la risoluzione di un problema.

Il modo in cui il problema viene risolto può essere considerato secondario.

Indipendentemente da ciò, ogni volta che lavoro con una base di codice; tuttavia, è scritto, cerco comunque di assicurarmi che sia organizzato in un modo che sia coeso, il più facile da seguire possibile e che possa essere mantenuto nel tempo.

Suggerimenti per l'organizzazione del codice di procedura

Ho pensato di condividere il modo in cui mi avvicino alla scrittura di plugin per WordPress usando la programmazione procedurale rispetto alla programmazione orientata agli oggetti e come organizzo il codice procedurale.

Se non altro, forse questo ti darà alcune idee per un progetto attuale o futuro.

Codice procedurale organizzativo

Quando si tratta di lavorare con il codice procedurale, c’è molto potenziale per includere quasi tutto in un unico file monolitico.

Non sono di questo approccio perché rende più difficile trovare dove risiede qualcosa nel file (almeno se sei qualcuno che sta appena entrando in un progetto).

A tal fine, queste sono le cose che di solito faccio.

  1. Azioni e filtri separati. In genere, eseguirò tutte le azioni e le inserirò in un file, prenderò tutti i filtri e li inserirò in un altro file. È anche possibile separare ulteriormente questi file in sottodirectory (se non anche spazi dei nomi) in base alle loro aree di interesse. Ad esempio, qualsiasi azione relativa all’area di amministrazione può andare in una sottodirectory admin .
  2. Scrivi un file di debug. Normalmente includo un semplice script di debug in un plug-in in modo da poter facilmente eseguire il rendering delle informazioni di debug sullo schermo, scrivere nel file di registro di debug o scrivere su entrambi. Questa può essere una comodità se non altro, ma aiuta a fornire un modo per vedere facilmente cosa sta succedendo senza dover avviare Xdebug e scorrere il codice (a meno che non sia un problema più complicato).
  3. Caricatore automatico. Se stai utilizzando codice procedurale, potresti non utilizzare affatto gli spazi dei nomi, ma in tal caso includo anche un caricatore automatico che ho scritto per semplificare l’inclusione automatica dei file. Questo è diverso dal caricatore automatico generato da Composer, ma fa comunque la stessa cosa.

Ovviamente, non c’è nulla di intrinsecamente complicato nelle raccomandazioni di cui sopra. In effetti, direi che uno qualsiasi dei precedenti, in particolare il primo passo può fare molto per migliorare la gestibilità del codice procedurale.

Il file principale del plug-in

Se scegli di fare tutto quanto sopra, la versione finale del file bootstrap del plugin dovrebbe essere davvero semplice. In effetti, potrebbe sembrare qualcosa di semplice come questo :

<?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';

Ancora una volta, questo presuppone che tu stia applicando tutti e tre i consigli. In caso contrario, l’implementazione potrebbe variare.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More