Jos kotoisin olio-taustasta tai yrität rakentaa kaikki ratkaisusi WordPressiin oliotekniikoilla, tulee hetkiä, jolloin saattaa tuntua, että osut naulaan vasaralla.
Oletetaan esimerkiksi, että joku tulee luoksesi ja tarvitsee mukautetun laajennuksen, joka toimii kolmannen osapuolen laajennuksen kanssa, mutta sen tarvitsee tehdä vain yksi asia.
Kannattaako käyttää aikaa käyttöliittymän luomiseen , mainitun rajapinnan toteuttamiseen konkreettisessa luokassa, tilaajien asettamiseen, yksikkötestien kirjoittamiseen ja niin edelleen?
Näen valituksen, mutta yleensä sanon ei. Jos tehtävien sisältö on sisällytettävä tyyleihin tai JavaScript-tiedostoihin tai molempiin, niin miksi et luottaisi alkuperäisiin WordPress-sovellusliittymiin ja prosessiohjelmointiin?
Älä ylisuunnittele
Oletetaan, että luoksesi tulee potentiaalinen asiakas, joka:
- työskentelee erittäin tiukalla budjetilla,
- siinä on kolmannen osapuolen laajennus, joka ei sovi hyvin teemaan,
- tarvitsee vain kevyttä muotoilua,
- ja hänellä on varat tehdä sopimus sinulle työstä.
Olettaen, että kaikki yllä oleva pitää paikkansa, sanoisin, että ratkaisun läpikäyminen näyttää riittävän yksinkertaiselta, eikö? Meidän on tarkastettava sivusto, jotta voimme:
- määrittää värimaailman,
- löytää tarvittavat valitsimet CSS:ää varten,
- aloita sitten laajennuksen rakentaminen.
Nyt kun se tulee tekemään tätä, yritän silti käyttää kourallista parhaita käytäntöjä. Vaikka minulla on tapana olio-ohjelmointi, en aina käytä sitä enkä suosittele sitä.
Sen sijaan uskon, että yksinkertaisen funktion tai funktiosarjan käyttäminen WordPress-sovellusliittymään koukussa menettelytavalla toimii hienosti. Tämä ei kuitenkaan tarkoita, etteikö meidän pitäisi pyrkiä luomaan kiinteää tiedostojen organisointirakennetta, koska et koskaan tiedä, milloin joudut palaamaan ylläpitämään projektia.
Tätä varten teen tavallisesti seuraavasti:
- luo resurssihakemisto tyylitaulukoille ja JavaScriptille (molemmalle tai toiselle – sen mukaan, kumpi on tarpeen),
- luo src -hakemisto koodille, joka vastaa WordPressiin kytkemisestä,
- lisää tavallinen LICENSE-, README- ja plugin bootstrap -tiedosto.
Tuloksena oleva hakemisto voi näyttää tältä:
Sieltä en edes vaivaudu automaattilataajaan. Sen sijaan sisällytän tiedostot lähdehakemistoon. Voit iteroida näitä tiedostoja ja tehdä jotain tämän kaltaista :
<?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';
Mutta se saattaa riippua siitä, milloin ja mitä teet.
Tämä on liian yksinkertaista
Voi olla. Tässä on asia: Aina kun henkilö juurtuu käyttämään tiettyä ohjelmointiparadigmaa, hän yrittää soveltaa sitä kaikkialla ja yrittää tehdä niin koko ajan.
Ei kaikki, mutta monet. Itseni mukaan lukien.
Ja kun huomaat suunnittelevasi jotain liikaa, miksi et ottaisi askelta taaksepäin ja yrittäisi tehdä työmäärästäsi hieman yksinkertaisempaa?
Ongelma on edelleen ratkaistu, ja se on tehty tavalla, jolla on huomattavasti vähemmän yleiskustannuksia.