to måder at udvikle wordpress plugins: funktionelle planlægning

, to måder at udvikle wordpress plugins: funktionelle planlægning,,,,, andel,,,,,,,, 10,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, denne del to i en serie på to forskellige programmer styles (undertiden kaldet programmering paradigmer), som de kan bruge, når wordpress plug - ins.i første del, tom mcfarlin omfattet samt programmering.i denne del, vi kigger på funktionelle planlægning.,, fordi erfaringerne niveau for læsere varierer, vi kommer til at tale om planlægning på et højt niveau, så hvis du er en nybegynder, skulle du ikke have problemer med følgende sammen.men hvis du er en mere erfaren entreprenør, så du kan finde flere nyttige oplysninger senere i artiklen.,, hvad der er funktionelle planlægning?funktionelle planlægning er sandsynligvis den stil, som de har bedst kendskab til - og næsten alle - er den stil, der anvendes i de forskellige wordpress kode snippet websteder, der flyder rundt på internettet.derfor kan det undertiden opfattes som "start" programmering: den stil, ansat af begyndere, indtil de har lært at styre samt programmering.dette er yderst vildledende, for mens funktionelle planlægning er meget enklere, men er ikke i sig selv ringere., funktionelle planlægning fremhæves den evaluering af funktioner, og undgår at begrebet stater eller genstande i modsætning til samt programmering, som tilskynder til at tænke på kode, som handler om genstand (e), anvendelse af metoder til at ændre disse genstande, eller som reagerer med dem.lad os se på et meget enkelt eksempel sammenligner de to former: //funktionel metode fungerer add_two ($n) {tilbage $n + 2} $a = 2 $b = add_two ($); //$b = 4; //genstand sorienteret metode klasse nummer (var $værdi = 0, funktion __construct ($) {$- > værdi = $a} funktion add_two() {$- > værdi = $- > værdi + 2}} $a = nye nummer (2), echo en. - $> værdi //fingeraftryk $2 - > add_two(), echo en. - $> værdi; //- 4, dette meget enkle eksempel illustrerer den fundamentale forskel i stil med to paradigmer: funktionelle planlægning fokuserer på at argumenter, og som modtager værdier fra funktioner.der er ingen "objekter", der bliver handlet om, kun parametre og returnerer værdier.omvendt, samt tilgang tildeler et objekt forskellige egenskaber (i dette tilfælde en "værdi") og metoder på de egenskaber, funktioner: det grundlæggende, at definere funktioner, er meget enkel:, funktion tilføje ($nummer, $number2 = 1) (//udføre kode, der bestod variabler $beløb = $nummer + $number2; //fakultativ, hvis der er behov for det, du kan vende tilbage til en værdi tilbage $beløb), når den funktion er erklæret, at den kan anvendes overalt i din stik - med andre ord er det globale omfang. $a = 4 $b = 7 echo tilføje ($$b). //- 11, funktioner, skal have entydige navne.redeclaring funktion vil kaste en fejl.siden din kode skal være sideløbende med andre plug - ins, temaer og wordpress sig, du skal aldrig bruge generiske navne.i stedet burde du præfiks din funktion navne med noget unikt (som navnet på din stik).du har måske bemærket, at i definitionen af, tilføje, at det andet argument er sat lig med 1.dette er en standardværdi for $number2 (i dette tilfælde 1), og derved gør det argument, er fakultativ.når dette ikke er leveret, er denne værdi anses for at være en standardværdi: echo tilføje (4) //- 5 echo tilføje (4, 1) //- 5, på den anden side, ingen standardværdi er leveret til den første værdi, således at udelade dette argument vil kaste en fejl echo add(); //kaster en fejl som $antallet ikke er defineret, kan du også få et variabelt antal argumenter.i den funktion, vi kan bruge, func_num_args(), at få antallet af modtagne argumenter, mens func_get_arg(), giver dig mulighed for adgang til en særlig bestået variabel, indekseret fra 0, funktion sum() (//få antallet af argumenter, som sum() $number_args = func_num_args(). $beløb = 0, hvis (!$number_args) afkast $beløb; for ($jeg = 0 $jeg < $number_args. $i + +) ($beløb + = func_get_arg ($);} tilbage $beløb;} echo beløb (1, 2, 3, 4); //aftryk 10 echo beløb (1, 2); //fingeraftryk 3 echo sum(); //- 0, ovenfor, kan anvendes til formål, der også.endelig ved at erklære en variabel, som er globale, "du kan få adgang til variabel i funktion. $a =" goddag ". $b =" verden "funktion hello_world() (//det er nødvendigt adgang til $og $b //erklæret uden for funktion anvendelsesområde.globale $$b $b = $. ". $b} hello_world(); echo $b //fingeraftryk "hej verden ved hjælp af globals er generelt begrænset.især da to plug - ins med samme navn for en global variabel kan medføre enten en eller to plug - ins til pause.hvis du skal bruge en global variabel, sikre, at det er enestående ved ved at tilføje til din stik navn.hvorfor bruge funktionelle planlægning?, at beslutte, hvilke programmering stil at bruge kommer til dom - - personlig præference.det er ikke mere rigtigt eller forkert anvendelse af funktionelle over samt programmering, men oftest er der en stil, der er bedre egnet til hvad du prøver at opnå. undertiden genstand orienterede programmering er simpelthen ikke nødvendigt, og kun komplicerer tingene, eller indfører overflødige kode.et eksempel kunne være forskellige nyttige funktioner wordpress giver.disse er generiske funktioner, som tjener til at udføre et bestemt formål.for eksempel, wp_trim_words ($tekst, $num_words), blot trims i snor til en vis størrelse (i bogstaver).det ville ikke tilføje noget til at definere, wp_trim_words() i stedet som en metode, der tilhører en genstand, og vil resultere i grimmere kode.med funktionelle planlægning tager det en linje. en fordel af funktionelle planlægning, især for begyndere, er enkel.du behøver ikke at bekymre dig om statisk, private eller beskyttet funktioner - de er alle samlet.heller ikke begrebet statisk variabler findes.på det grundlæggende niveau din funktion returnerer en produktion, der stammer fra, hvad du har givet det.for eksempel, get_the_title (7), vil bringe titlen for post med id - 7. en anden fordel af funktionelle planlægning er det funktioner er tilgængelige på globalt plan.med samt programmer, for at handle på en bestemt genstand, du er nødt til at gå uden om denne genstand.dette kan undertiden være vanskeligt.for at illustrere dette, så lad os tage et eksempel fra første del: klasse demoplugin {offentlige funktion __construct() {add_action ('wp_enqueue_scripts, system ($, register_plugin_scripts')} offentlig funktion register_plugin_scripts() (//register, stik af manuskripter) $demo_plugin = nye demoplugin();, når wordpress depoter, register_plugin_scripts(), metode for at det kan kaldes den wp_enqueue_scripts er der udløste det gør det ved at referere til ikke blot den metode, men også genstand, $demo_plugin,.det er fordi, den samme metode for forskellige tilfælde af en genstand betragtes som forskellige metoder - det er $demo_plugin - > register_plugin_scripts() og $copy_of_demo_plugin - > register_plugin_scripts(), ikke er de samme.det virker måske underligt - - men metoder kan opføre sig anderledes for de forskellige tilfælde af samme klasse, så vi er nødt til at henvise både metode og f.eks. men hvorfor betyder det noget?det gør det meget vanskeligt for tredjemand at åbne denne metode laver eller tema, da dette vil de skulle kalde:, remove_action ('wp_enqueue_scripts, system ($demo_plugin, register_plugin_scripts'), men generelt har de ikke adgang til $demo_plugin, variabel.(bemærk: hvis den metode, der er angivet statisk, så du kan komme rundt).,, objekt orienteret og funktionelle planlægning i wordpress naturligvis samt programmering har sine fordele, som omtalt i første del.som tom også nævnte, er det uundgåeligt, når de bruger wordpress "dims api - grænseflade.en anden fælles eksempel er, wp_query(),.her er et objekt orienteret tilgang er klart den bedste. du har et objekt (i dette tilfælde en forespørgsel, som har forskellige egenskaber (dvs. søgekriterier, sidenummerering, tilsvarende resultater) og du vil handle på denne forespørgsel (analysere det, skabe og sanere den tilsvarende sql, og vende tilbage med resultaterne).,, wp_query(), viser, hvor stærk samt programmering kan være, når det anvendes korrekt.efter indledning af spørgsmål: $the_query = nye wp_query (array (...), kan du ikke bare få adgang til resultaterne, men også andre oplysninger, såsom, sidenummerering værdier: hvor mange sider af de resultater, der er, hvilken side vurderes, det samlede antal resultater, og den type af spørgsmål f.eks. $the_query - > is_search(), $the_query - > is_single() osv. der er også hele loop "infrastruktur, hvis ($the_query - > have_posts()) (echo '< ul > «, mens ($the_query - > have_posts()): $the_query - > the_post(); //loop echo' < li >".get_the_title ($the_post - > id).< /li > «. endwhile; echo '< /ul > «) wp_reset_postdata(), der gemmer alle interne jonglering af resultater og globals bag et menneske venlige api -., så hvad med, get_posts(),?det tjener som et stykke papir, wp_query(), og blot vender tilbage med en række stillinger, som opfylder forespørgslen.så du ikke får de klokker og fløjter ", wp_query(),, men det er lidt mere effektivt.så, om du skal bruge, get_posts(), eller, wp_query(), afhænger af deres anvendelse (f.eks. om du skal drikke eller ikke), men det er også om personlige præferencer. $resultater = get_posts (array (...))og hvis ($) (echo '< ul >'; for hvert ($resultater som $the_post) (echo '< li > ".get_the_title ($the_post - > id).< /li > "} echo '< /ul > «), sammendrag, forhåbentlig i disse to artikler, har bidraget til at bringe fordele og ulemper ved disse programmer styles.de fjerner punkt er, at der ikke er noget rigtigt og forkert, og hver enkelt programmør har deres egen personlige præferencer.men nogle sammenhænge egner sig lettere til visse programmer stil - og som sådan skal du forvente, at din stik til at indeholde en blanding af begge dele.



Previous:
Next Page: