WordPressi pistikprogrammide taastamine: väike näide
Üks WordPressi pistikprogrammide moodustumise viise on see, et vähemalt minu puhul algavad need funktsioonide kogumina, mida kasutatakse antud projekti konkreetse eesmärgi täitmiseks. Sealt edasi mõtlete: "Hei, võib-olla on see kellelegi teisele kasulik."
Vähemalt on see minu kogemus sagedamini kui mitte.
Kuid asi on selles, et enne kui selle teistele inimestele proovimiseks välja annate, soovite koodi puhastamise protsessi läbi teha. Ma ei räägi ka WordPressi pistikprogrammide ümbertöötamisest – vähemalt mitte veel.
Ma räägin koodi võtmisest, selle viimisest millekski, mis töötab WordPressi pistikprogrammina, ja seejärel võib-olla koodi ümbertöötamisest.
WordPressi pistikprogrammide ümbertöötamine
Kogu WordPressi pistikprogrammide ümbertegemise protsessi läbimine – rääkimata ühest WordPressi pistikprogrammist – võib olla vaevarikas, kuid pistikprogrammi osa ümbertöötamise jagamine on midagi, mis on teostatav.
Nii et ma kasutan näidet selle kohta, kuidas ma hiljuti midagi kasutasin (koos veidi abstraktse koodiga, et mitte vaevuda konkreetse projekti kohta täpsustama).
Valikute ideaalse väljundi kaardistamine.
Enne seda arvan siiski, et on oluline jagada minu protsess võib teie omast erineda või tõenäoliselt erineda (kuna paljudel meist on erinevad protsessid).
- Kujundage komponent (jah, isegi mitte täielik pistikprogramm) sülearvutis,
- Koostage kontrollnimekiri kasutusjuhtudest, millal see peaks läbima ja millal ebaõnnestuma,
- Kirjutage üles, milliseid andmeid on vaja, kuidas neid vaja on ja millal tuleks neid ignoreerida
- Teisendage kõik ülaltoodud koodiks.
Muidugi ei teisenda ma seda kõike sõna otseses mõttes koodiks, aga saate aru. Võib-olla on kõige täpsem viis selle väljendamiseks järgmine:
- Alustage pika meetodiga, mis sobib ideaalselt kasutamiseks. Seejärel muutke see kood ümber nii, et funktsioonid oleksid väiksemad, ja arvestage juhtumitega, mille korral tulemus ebaõnnestub.
Seda öeldes võib kood välja näha järgmine.
1 Ideaalse kasutusjuhtumi kirjutamine
Selles näites on ideaalne kasutusjuhtum, kui kasutaja laadib suvandid, suvandid on olemas ja seejärel peab ta sooritama toimingu, kui suvanditel on teatud väärtused.
<?php
private function load_dates() {
$options = get_option( 'acme_date_options' );
$event_settings = $options['event'];
$import = $event_settings['import'];
$post_type = $event_settings['post-type'];
if (( 0 === strcmp( 'yes', $import)) && (0 === strcmp( 'events', $post_type) )) {
// This is where you take whatever action you want.
}
}
See osa peaks olema hõlpsasti loetav, kuid see ei arvesta midagi peale koodi ideaalse tee.
2 Minge veidi kaitsesse
Järgmisena tahaksin enne lugemist veenduda, et suvandid on määratud. Mõnel juhul võite soovida kuvada teatise, teha erandi või logiteavet.
Selles näites naasen lihtsalt, kuna seda on lihtne lugeda ja seda saab kõige hõlpsamini teie jaoks kohandada.
<?php
private function load_dates() {
$options = get_option( 'acme_date_options' );
if (! isset( $options['event'])) {
return;
}
$event_settings = $options['event'];
if (! isset( $event_settings['import']) ||! isset( $event_settings['post-type'])) {
return;
}
$import = $event_settings['import'];
$post_type = $event_settings['post-type'];
if (( 0 === strcmp( 'yes', $import)) && (0 === strcmp( 'events', $post_type) )) {
// This is where you take whatever action you want.
}
}
Nii et see käsitleb valikuid, aga kuidas on siis, kui valikud on määratud, kuid neil pole ootuspäraseid väärtusi? See tähendab, et peame ka kontrollima, et nad seda teevad. Ja kui ei, siis ignoreerige neid, pöörduge tagasi, logige tõrketeade, tehke erand ja nii edasi.
Teate: sama, mis ülal. Välja arvatud sel juhul, ma ei võta midagi ette, kui koodil pole ideaalset teavet.
3 Natuke pikaks saamine
Praegu muutub meetod pisut pikaks ja seda on raskem lugeda. Muidugi, kui olete kogenud programmeerija, võite väita, et "See on kood, see pole inglise keel", kuid miks mitte seada eesmärgiks muuta selle jälgimine pisut lihtsamaks?
Lisaks muudab see testimise pisut lihtsamaks. Kuid see ei kuulu selle postituse ulatusse. Võtke koodi esimese näitena valikute hindamine.
- See on midagi, mille saab kokku võtta selle funktsiooniga, mis mitte ainult ei isoleeri seda kontrolli, vaid muudab ka sellest tuleneva kõne pisut lihtsamaks.
- Järgmiseks võtke teine koodiplokk, mis kontrollib ideaalseid valikuväärtusi. Seda saab ka abstraktselt võtta samadel ülaltoodud põhjustel.
- Ja lõpuks seadistage funktsioon, mis tagab, et iga määratud väärtuse jaoks on seatud eeldatavad väärtused :
<?php
private function has_valid_option( $option) {
return isset( $option );
}
private function has_valid_values( $value1, $value2) {
return! (isset( $value1) && isset( $value2) );
}
private function can_import_data( $value1, $value2) {
return (0 === strcmp( 'yes', $value1)) && (0 === strcmp( 'events', $value2) );
}
Nüüd on teil kaks väiksemat meetodit, mis kapseldavad sama kontrolli, mida tegite.
4 Lõplik funktsioon
Siinkohal on viimast funktsiooni palju lihtsam lugeda, kuna sellel on kaks abifunktsiooni, mis koondavad nende kohustused, samas kui see on tagasi koodi ideaalse tee hindamise juurde:
<?php
private function load_dates() {
$options = get_option( 'acme_date_options' );
if (! $this->has_valid_option( $options)) {
return;
}
$event_settings = $options['event'];
if (! $this->has_valid_values( $event_settings['import'], $event_settings['post-type'])) {
return;
}
$import = $event_settings['import'];
$post_type = $event_settings['post-type'];
if ($this->can_import_data( $import, $post_type)) {
// This is where you take whatever action you want.
}
}
Piisab, kui öelda, et mis puudutab WordPressi pistikprogrammide ümberkujundamist, siis see on vaid üks näide, kuidas teha sellest vaid osa. Aga see on algus, eks?
Terved pistikprogrammid?
Ma tean, eks? WordPressi pistikprogrammide ümbertöötamine pole naljaasi. Kuid kui alustate selliste väikeste funktsioonidega ja liigute järk-järgult koodibaasi ümber, muutub see lihtsamaks.
Ja kui kulutate aega projekti algusest peale kavandamisele, võib see säästa palju aega tagasipöördumisel ja selliste asjade ümbertöötamisel.