Objektorientert programmering i WordPress Dokument Plugin II

På dette punktet i serien er vi klare til å gå videre med å avrunde pluginet vårt ved å dokumentere våre filer, klasser, funksjoner, variabler og mer.

Selv om dette er det siste skrittet som vi faktisk må fullføre pluginet, er det ikke det siste innlegget i serien, da vi fortsetter å se på noen avanserte emner i objektorientert programmering.

Men før vi gjør det, la oss ta med pluginet til versjon 1.0 ved å sette i gang alt vi lærte i forrige artikkel.

Selvfølgelig, som med alle tidligere artikler anbefaler jeg å ta opp alt vi har dekket så langt, så du er helt opp til hastighet, ikke bare med det arbeidet vi har gjort i den siste artikkelen, men med hvordan vi faktisk kom til de endelige punktene vi diskuterer i denne artikkelen.

  1. En introduksjon
  2. klasser
  3. typer
  4. Kontrollstrukturer: betingede uttalelser
  5. Kontrollstrukturer: Looper
  6. Funksjoner og attributter
  7. omfang
  8. Bygg pluggen jeg
  9. Bygg Plugin II
  10. Dokument Plugin I

Med alle de dekket og anmeldt, la oss begynne med å dokumentere hver av våre filer.

Dokumentasjon av plugin

Det finnes en rekke forskjellige måter vi kan gå på å dokumentere dette pluginet:

  • Vi kunne dokumentere alle filoverskriftene først, da vi kunne komme tilbake og dokumentere klassene, da kunne vi komme tilbake og dokumentere variablene, da kunne vi dokumentere funksjonene.
  • Vi kunne dokumentere hver fil om gangen og ha en kort diskusjon om alt som er inkludert på en perfil basis.

Åpenbart vil alternativet gi mer dokumentasjon per seksjon, men bør resultere i en mye mindre kjedelig artikkel og en mye lettere å forstå strømmen av kontroll for hele plugin.

Til dette formål skal vi jobbe gjennom plugin, fil-for-fil, introdusere dokumentasjon for hvert stykke kode som vi har, og så diskuterer vi noen interessante steder etter koden.

Til slutt vil vi sørge for at vi henviser til den endelige versjonen av pluginet i slutten av artikkelen. Med det sagt, la oss komme i gang.

The Single Post Meta Manager

Husk at hovedfilen for å starte plugin er filen single-post-meta-manager.php som ligger i roten til katalogen av plugin-modulen.

Slik ser den fullstendig dokumentert versjonen av filen ut. Les hver kommentar nøye og ta hensyn til ikke bare formatet som følger, men innholdet det gir.

løpe();  // Ring over funksjonen ovenfor for å begynne å utføre plugin. run_single_post_meta_manager (); 

I den ovennevnte koden merker vi at vi har definert en filoverskrift som i de konvensjonene som vi skisserte det i forrige artikkel. Vi har også opprettholdt de nødvendige plugin header-kodene for at WordPress skal kunne lese dem riktig.

Vær oppmerksom på at vi i dette tilfellet har tatt med dem under en egendefinert @ Wordpress-plugin stikkord. Dette er ikke nødvendig, men bidrar til å skille filhovedkommentarene fra de nødvendige plugin-kommentarene.

Endelig merk at vi har støt versjonen av denne plugin opp til 1.0, og vi har også gitt dette pluginet på @pakke verdien av spmm som er mangel på Enkelt innlegg Meta Manager. Vi bruker dette hele pluginet.

De inkluderer Directory

Deretter la vi være oppmerksom på alle filene som er plassert i katalogen. 

Siden disse filene kreves før noe i administrasjonskatalogen, er det fornuftig å se på hver enkelt av disse filene enkeltvis, og deretter utruller diskusjonen med de gjenværende filene i administrasjonsmappen.

The Single Post Meta Manager

plugin_slug = 'single-post-meta-manager-slug'; $ this-> version = '1.0.0'; $ Dette-> load_dependencies (); $ Dette-> define_admin_hooks ();  / ** * Importer Meta-administrasjonsklassene for enkelt innlegg, og Single Post Meta Loader. * * Administrasjonsklassen for Enkelt innlegg Meta Manager definerer all unik funksjonalitet for * innføring av tilpasset funksjonalitet i WordPress dashboard. * * Enkelt innlegg Meta Manager Loader er klassen som vil koordinere kroker og tilbakeringinger * fra WordPress og plugin. Denne funksjonen instanserer og angir referansen til egenskapen * $ Loader-klassen. * * @access private * / private funksjon load_dependencies () require_once plugin_dir_path (dirname (__FILE__)). 'Admin / klasse-single-post-meta-leder-admin.php'; require_once plugin_dir_path (__FILE__). 'Class-single-post-meta-leder-loader.php'; $ this-> loader = new Single_Post_Meta_Manager_Loader ();  / ** * Definerer kroker og tilbakeringingsfunksjoner som brukes til å sette opp plugin stylesheets * og pluginens meta-boks. * * Denne funksjonen er avhengig av Administrasjon av enkelt innlegg Meta Manager Admin og Egen post Meta Manager * Loader klasse eiendom. * * @access privat * / privat funksjon define_admin_hooks () $ admin = new Single_Post_Meta_Manager_Admin ($ this-> get_version ()); $ this-> loader-> add_action ('admin_enqueue_scripts', $ admin, 'enqueue_styles'); $ this-> loader-> add_action ('add_meta_boxes', $ admin, 'add_meta_box');  / ** * Angir denne klassen i bevegelse. * * Utfører plugin ved å ringe løpemetoden til loader klassen som vil * registrere alle kroker og tilbakeringingsfunksjoner som brukes i hele pluginet * med WordPress. * / public function run () $ this-> loader-> run ();  / ** * Returnerer gjeldende versjon av plugin til den som ringer. * * @return string $ this-> versjon Den nåværende versjonen av plugin. * / offentlig funksjon get_version () return $ this-> versjon;  

Det er tydeligvis det mye av nye kommentarer som har blitt innført i denne spesifikke filen; Det bør imidlertid være veldig selvforklarende hva hver klasse eiendom, konstruktør og interne funksjoner gjør.

Den viktigste tingen å legge merke til - bortsett fra hvordan informasjonen samordnes gjennom plugin-modulen - er hvordan vi har overholdt standardene som er definert i forrige artikkel. 

Legg merke til at vi ha tatt friheten hvis ikke bruker bestemte koder og / eller funksjoner i dokumentasjonen når de ikke er relevante. Dette er noe vi vil fortsette å gjøre gjennom resten av artikkelen.

Enkelt innlegg Meta Manager Loader

handlinger = array (); $ this-> filters = array ();  / ** * Registrerer handlingene med WordPress og de respektive objektene og * deres metoder. * * @param string $ hook Navnet på WordPress-kroken som vi registrerer en tilbakeringing til. * @param-objekt $ komponent Objektet som inneholder metoden som skal kalles når kroken avfyres. * @param string $ callback Funksjonen som ligger på den angitte komponenten. * / offentlig funksjon add_action ($ hook, $ component, $ tilbakering) $ this-> actions = $ this-> add ($ this-> handlinger, $ hook, $ component, $ callback);  / ** * Registrerer filtrene med WordPress og de respektive objektene og * deres metoder. * * @param string $ hook Navnet på WordPress-kroken som vi registrerer en tilbakeringing til. * @param-objekt $ komponent Objektet som inneholder metoden som skal kalles når kroken avfyres. * @param string $ callback Funksjonen som ligger på den angitte komponenten. * / offentlig funksjon add_filter ($ hook, $ component, $ callback) $ this-> filters = $ this-> legg til ($ this-> filters, $ hook, $ component, $ callback);  / ** * Registrerer filtrene med WordPress og de respektive objektene og * deres metoder. * * @access private * * @param array $ kroker Samlingen av eksisterende kroker for å legge til samlingen av kroker. * @param string $ hook Navnet på WordPress-kroken som vi registrerer en tilbakeringing til. * @param-objekt $ komponent Objektet som inneholder metoden som skal kalles når kroken avfyres. * @param string $ callback Funksjonen som ligger på den angitte komponenten. * * @return array Samlingen av kroker som er registrert med WordPress via denne klassen. * / privat funksjon legg til ($ kroker, $ krok, $ komponent, $ tilbakering) $ kroker [] = array ('hook' => $ krok, 'komponent' => $ komponent, 'tilbakeringing' => $ tilbakeringing) ; returnere $ kroker;  / ** * Registrerer alle de definerte filtre og handlinger med WordPress. * / public function run () foreach ($ dette-> filtre som $ hook) add_filter ($ hook ['hook'], array ($ hook ['component'], $ hook ['callback']));  foreach ($ this-> handlinger som $ hook) add_action ($ hook ['hook'], array ($ hook ['komponent'], $ hook ['callback']));  

Legg merke til at denne klassen er mer eller mindre en kjernebestanddel av pluginet ved at den koordinerer alle handlingene og filtene som brukes i pluginet. Denne plugin sentraliserer all registrering og koordinering av kroker som brukes gjennom plugin.

Endelig, når løpe er kalt, alle kroker er registrert med WordPress slik at pluggen brenner, vil det ringe til hver av de registrerte handlinger og filtre.

De admin Directory

På dette tidspunktet er vi klare til å gjøre oppmerksomheten vår oppmerksom på filene som finnes i administrasjonskatalogen for plugin. 

Selv om filen består av et par PHP-filer, består det også av en CSS-fil. For formålet med denne artikkelen skal vi ikke dokumentere CSS-filene; men WordPress Codex gjør definer dokumentasjon for dette.

For nå, la oss fortsette å dokumentere klassene og filene som finnes i admin katalog.

Enkelt innlegg Meta Manager Admin

Administrasjonsklassen for Enkelt innlegg Meta Manager har et enkelt ansvar: Definer funksjonaliteten for å gjøre meta-boksen og dens stiler til instrumentbrettet.

versjon = $ versjon;  / ** * Enqueues stilarket som er ansvarlig for utforming av innholdet i denne meta-boksen. * / offentlig funksjon enqueue_styles () wp_enqueue_style ('single-post-meta-manager-admin', plugin_dir_url (__FILE__). 'css / single-post-meta-manager-admin.css' > versjon, feil);  / ** * Registrerer meta-boksen som vil bli brukt til å vise alle post-metadataene * som er knyttet til gjeldende innlegg. * / offentlig funksjon add_meta_box () add_meta_box ('single-post-meta-manager-admin', 'Enkelt innlegg Meta Manager', array ($ dette, 'render_meta_box'), 'innlegg', 'normal' );  / ** * Krever filen som brukes til å vise brukergrensesnittet i post-meta-boksen. * / offentlig funksjon render_meta_box () require_once plugin_dir_path (__FILE__). 'Deltonene / enkelt-post-meta-manager.php';  

Legg merke til at klassen ovenfor har svært få funksjonelle detaljer. Først og fremst holder klassen en referanse til versjonen av pluginet, stilarket som brukes til å stilere meta-boksen, og funksjonen som kreves for å faktisk gjøre meta-boksen.

Husk at alt dette er oppsett i kjernepluginfilen og lasteren. Dette bidrar til å eliminere logikken som finnes i plugin-modulen, slik at hver klasse kan fokusere på hva som er hovedformålet.

Selvfølgelig er det siste stykket av plugin avhengig av den faktiske delvise filen som inneholder oppslaget som er nødvendig for å vise meta-boksen.

Enkelt innlegg Meta Manager Partial

 
$ post_meta_value) ?>

Dette bør være relativt selvforklarende; For å være komplett må du imidlertid være oppmerksom på at denne filen tar nåværende post-ID (ved bruk av get_the_ID () funksjon), leser post-metadataene, og deretter iterates gjennom det å bygge et bord som viser nøklene og verdiene.

Finalisering av plugin

På dette tidspunktet har vi fullført implementeringen av pluginet vårt. Fra å sette de objektorienterte programmeringsprogrammeringspraksis på plass, for å dokumentere koden.

Du kan ta tak i den endelige versjonen av pluginet på GitHub; Vi vil imidlertid fortsette vår objektorienterte diskusjon om noen få innlegg, slik at vi kan utforske noen mer avanserte emner som arv, abstraksjon og andre emner.

I mellomtiden, hvis du har spørsmål eller kommentarer om plugin, ikke nøl med å legge dem i kommentarene!