Kui tulete objektorienteeritud taustalt või proovite luua kõik oma WordPressi lahendused objektorienteeritud tehnikate abil, siis võib mõnikord tekkida tunne, et lööte haamriga naela.
Oletame näiteks, et keegi tuleb teie juurde ja vajab kohandatud pistikprogrammi väljatöötamist, mis töötab koos kolmanda osapoole pistikprogrammiga, kuid see peab tegema ainult ühte asja.
Kas tasub võtta aega liidese loomiseks, selle liidese rakendamiseks konkreetses klassis, tellijate seadistamiseks, ühikutestide kirjutamiseks ja nii edasi?
Ma näen üleskutset, kuid üldiselt ütlen ei. Kui teie tegevuse põhisisu peab hõlmama stiilide või JavaScript-failide või mõlemat, siis miks mitte loota WordPressi algsetele API-dele ja protseduurilisele programmeerimisele?
Ärge üleinsenerige
Oletame, et teie juurde tuleb potentsiaalne klient, kes:
- töötab väga kitsa eelarvega,
- sellel on kolmanda osapoole pistikprogramm, mis selle teemaga hästi ei sobi,
- vajab ainult kerget stiili,
- ja tal on raha teiega töö tegemiseks lepingu sõlmimiseks.
Kui eeldada, et kõik ülaltoodu on tõsi, siis ma ütleksin, et lahenduse läbitöötamine tundub piisavalt lihtne, eks? Peame saiti auditeerima, et saaksime:
- määrake värviskeem,
- leida CSS-i jaoks vajalikud selektorid,
- seejärel alustage pistikprogrammi loomist.
Nüüd, mis puudutab seda, püüan siiski kasutada käputäis parimaid tavasid. Kuigi kaldun objektorienteeritud programmeerimise poole, ei kasuta ma seda alati ega soovita seda alati.
Selle asemel arvan, et lihtsa funktsiooni või funktsioonide komplekti kasutamine, mis on protseduuriliselt WordPressi API-ga ühendatud, toimib suurepäraselt. See aga ei tähenda, et me ei peaks püüdma luua kindlat failikorraldusstruktuuri, sest kunagi ei tea, millal võib tekkida vajadus projekti hooldamiseks tagasi tulla.
Selleks teen ma tavaliselt järgmist.
- luua varade kataloog stiilitabelite ja JavaScripti jaoks (mõlema või ühe jaoks – olenevalt sellest, kumb on vajalik),
- looge koodi jaoks src kataloog, mis vastutab WordPressiga haakumise eest,
- lisage tavaline LICENSE, README ja plugin bootstrap fail.
Saadud kataloog võib välja näha umbes selline:
Sealt edasi ei viitsi ma isegi automaatlaaduriga vaeva näha. Selle asemel lisan failid lähtekataloogi. Saate neid faile korrata ja teha midagi sellist :
<?php
/**
* Acme Plugin Example
*
* @author Tom McFarlin <tom@pressware.co>
* @license GPL-3.0+
* @link https://pressware.co
* @since 1.0.0
* @copyright 2018 Tom McFarlin
*
* @wordpress-plugin
* Plugin Name: Acme Plugin Example
* Description: Provides consistent styling across the site for certain elements.
* Version: 1.0.0
* Author: Tom McFarlin
* Author URI: https://tommcfarlin.com
* License: GPL-3.0+
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt
*/
include_once plugin_dir_path(__FILE__).'src/AddStyles.php';
include_once plugin_dir_path(__FILE__).'src/AddScripts.php';
Kuid see võib sõltuda sellest, millal ja mida teete.
See on liiga lihtne
Võib olla. Siin on asi: kui inimene hakkab teatud programmeerimisparadigmat kasutama, proovib ta seda kõikjal rakendada ja püüab seda teha kogu aeg.
Mitte kõik, aga paljud. Mina ise kaasa arvatud.
Ja kui leiate end millegi ülearhitektuurist, siis miks mitte astuda samm tagasi ja proovida oma töökoormust veidi lihtsamaks muuta?
Probleem on endiselt lahendatud ja seda tehakse viisil, mis on oluliselt vähem üldkulusid.