{"id":230401,"date":"2022-12-09T18:22:00","date_gmt":"2022-12-09T15:22:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230401"},"modified":"2022-12-09T18:41:42","modified_gmt":"2022-12-09T15:41:42","slug":"aerge-kavandage-lahendust-uele","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/aerge-kavandage-lahendust-uele\/","title":{"rendered":"\u00c4rge kavandage lahendust \u00fcle"},"content":{"rendered":"\n<p>Kui tulete objektorienteeritud taustalt v\u00f5i proovite luua k\u00f5ik oma WordPressi lahendused objektorienteeritud tehnikate abil, siis v\u00f5ib m\u00f5nikord tekkida tunne, et l\u00f6\u00f6te haamriga naela.<\/p>\n<p>Oletame n\u00e4iteks, et keegi tuleb teie juurde ja vajab kohandatud pistikprogrammi v\u00e4ljat\u00f6\u00f6tamist, mis t\u00f6\u00f6tab koos kolmanda osapoole pistikprogrammiga, kuid see peab tegema ainult \u00fchte asja.<\/p>\n<p>Kas tasub v\u00f5tta aega liidese loomiseks, selle <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/abstraktsed-klassid-2-osa-abstraktsed-klassid-ja-liidesed\/\" title=\"liidese\">liidese<\/a><\/strong> rakendamiseks konkreetses klassis, <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-tueuepide-vaadete-ja-tellijate-korraldamine\/\" title=\"tellijate\">tellijate<\/a><\/strong> seadistamiseks, <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/kiire-maerkus-ueksuse-testimise-koodi-kohta-wordpressi-projektides\/\" title=\"\u00fchikutestide kirjutamiseks\">\u00fchikutestide kirjutamiseks<\/a><\/strong> ja nii edasi?<\/p>\n<p>Ma n\u00e4en \u00fcleskutset, kuid \u00fcldiselt \u00fctlen ei. Kui teie tegevuse p\u00f5hisisu peab h\u00f5lmama stiilide v\u00f5i JavaScript-failide v\u00f5i m\u00f5lemat, siis miks mitte loota WordPressi algsetele API-dele ja protseduurilisele programmeerimisele?<\/p>\n<h2>\u00c4rge \u00fcleinsenerige<\/h2>\n<p>Oletame, et teie juurde tuleb potentsiaalne klient, kes:<\/p>\n<ul>\n<li>t\u00f6\u00f6tab v\u00e4ga kitsa eelarvega,<\/li>\n<li>sellel on kolmanda osapoole pistikprogramm, mis selle teemaga h\u00e4sti ei sobi,<\/li>\n<li>vajab ainult kerget stiili,<\/li>\n<li>ja tal on raha teiega t\u00f6\u00f6 tegemiseks lepingu s\u00f5lmimiseks.<\/li>\n<\/ul>\n<p>Kui eeldada, et k\u00f5ik \u00fclaltoodu on t\u00f5si, siis ma \u00fctleksin, et lahenduse l\u00e4bit\u00f6\u00f6tamine tundub piisavalt lihtne, eks? Peame saiti auditeerima, et saaksime:<\/p>\n<ul>\n<li>m\u00e4\u00e4rake v\u00e4rviskeem,<\/li>\n<li>leida CSS-i jaoks vajalikud selektorid,<\/li>\n<li>seej\u00e4rel alustage pistikprogrammi loomist.<\/li>\n<\/ul>\n<p>N\u00fc\u00fcd, mis puudutab seda, p\u00fc\u00fcan siiski kasutada k\u00e4put\u00e4is parimaid tavasid. Kuigi kaldun objektorienteeritud programmeerimise poole, ei kasuta ma seda alati ega soovita seda alati.<\/p>\n<p>Selle asemel arvan, et lihtsa funktsiooni v\u00f5i funktsioonide komplekti kasutamine, mis on protseduuriliselt WordPressi API-ga \u00fchendatud, toimib suurep\u00e4raselt. See aga ei t\u00e4henda, et me ei peaks p\u00fc\u00fcdma luua kindlat failikorraldusstruktuuri, sest kunagi ei tea, millal v\u00f5ib tekkida vajadus projekti hooldamiseks tagasi tulla.<\/p>\n<p>Selleks teen ma tavaliselt j\u00e4rgmist.<\/p>\n<ul>\n<li>luua varade kataloog stiilitabelite ja JavaScripti jaoks (m\u00f5lema v\u00f5i \u00fche jaoks \u2013 olenevalt sellest, kumb on vajalik),<\/li>\n<li>looge koodi jaoks <strong>src<\/strong> kataloog, mis vastutab WordPressiga haakumise eest,<\/li>\n<li>lisage tavaline <strong>LICENSE, README<\/strong> ja plugin bootstrap fail.<\/li>\n<\/ul>\n<p>Saadud kataloog v\u00f5ib v\u00e4lja n\u00e4ha umbes selline:<\/p>\n<p>Sealt edasi ei viitsi ma isegi automaatlaaduriga vaeva n\u00e4ha. Selle asemel lisan failid l\u00e4htekataloogi. Saate neid faile korrata ja teha midagi <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/8d4e8a93a673d86f44d39c6e2893530e#file-00-bootstrap-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sellist<\/a><\/strong> :<\/p>\n<pre><code>&lt;?php\n\/**\n * Acme Plugin Example\n *\n * @author    Tom McFarlin &lt;tom@pressware.co&gt;\n * @license   GPL-3.0+\n * @link      https:\/\/pressware.co\n * @since     1.0.0\n * @copyright 2018 Tom McFarlin\n *\n * @wordpress-plugin\n * Plugin Name: Acme Plugin Example\n * Description: Provides consistent styling across the site for certain elements.\n * Version:     1.0.0\n * Author:      Tom McFarlin\n * Author URI:  https:\/\/tommcfarlin.com\n * License:     GPL-3.0+\n * License URI: http:\/\/www.gnu.org\/licenses\/gpl-3.0.txt\n *\/\n\ninclude_once plugin_dir_path(__FILE__).'src\/AddStyles.php';\ninclude_once plugin_dir_path(__FILE__).'src\/AddScripts.php';\n<\/code><\/pre>\n<p>Kuid see v\u00f5ib s\u00f5ltuda sellest, millal ja mida teete.<\/p>\n<h2>See on liiga lihtne<\/h2>\n<p>V\u00f5ib olla. Siin on asi: kui inimene hakkab teatud programmeerimisparadigmat kasutama, proovib ta seda k\u00f5ikjal rakendada ja p\u00fc\u00fcab seda teha kogu aeg.<\/p>\n<p>Mitte k\u00f5ik, aga paljud. Mina ise kaasa arvatud.<\/p>\n<p>Ja kui leiate end millegi \u00fclearhitektuurist, siis miks mitte astuda samm tagasi ja proovida oma t\u00f6\u00f6koormust veidi lihtsamaks muuta?<\/p>\n<p>Probleem on endiselt lahendatud ja seda tehakse viisil, mis on oluliselt v\u00e4hem \u00fcldkulusid.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kui teie toimingu sisuks on stiilide v\u00f5i JavaScripti failide v\u00f5i m\u00f5lema lisamine, siis \u00e4rge projekteerige lahendust rohkem kui vaja.<\/p>\n","protected":false},"author":1,"featured_media":236233,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,802,863],"tags":[1165],"class_list":["post-230401","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=230401"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230401\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236233"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}