{"id":234141,"date":"2022-12-08T09:33:00","date_gmt":"2022-12-08T06:33:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234141"},"modified":"2022-12-08T09:33:18","modified_gmt":"2022-12-08T06:33:18","slug":"sonumite-kirjutamine-wordpressi-silumislogi","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/sonumite-kirjutamine-wordpressi-silumislogi\/","title":{"rendered":"S\u00f5numite kirjutamine WordPressi silumislogi"},"content":{"rendered":"\n<p>Projekti kallal t\u00f6\u00f6tades on mul sageli WordPress seatud <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/natiivsed-wordpressi-silumistoeoeriistad-mis-ei-vaja-ide-d\/\" title=\"silumisre\u017eiimile\">silumisre\u017eiimile<\/a><\/strong> ja mulle meeldib kirjutada vealogi s\u00f5numeid, mida saan projekti kallal t\u00f6\u00f6tades h\u00f5lpsasti vaadata, j\u00e4lgida ja j\u00e4lgida.<\/p>\n<p>Kui ma seda teen, on kaks v\u00f5imalust (ja see s\u00f5ltub projektist):<\/p>\n<ul>\n<li>Ma kasutan raamatukogu, n\u00e4iteks <strong><a href=\"https:\/\/github.com\/Seldaek\/monolog\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Monolog<\/a><\/strong> ,<\/li>\n<li>Kasutan oma lihtsat logifunktsiooni.<\/li>\n<\/ul>\n<p>Selles postituses k\u00e4sitlen viimast. See t\u00e4hendab, et ma jagan, kuidas ma WordPressi silumislogi s\u00f5numeid kirjutan, ja seej\u00e4rel m\u00f5ningaid asju, millele peate v\u00f5ib-olla sama tehes t\u00e4helepanu p\u00f6\u00f6rama.<\/p>\n<h2>WordPressi silumislogi<\/h2>\n<p>Esiteks on oluline m\u00e4rkida, et funktsioon, mida ma jagan, on tavaliselt p\u00f5hiklassi kontekstis.<\/p>\n<p>Oletame, et mul on\u00a0 k\u00f5igil minu tellijatel rakendus <strong>AbstractSubscriber<\/strong> (nt <strong>ScriptAssetSubscriber<\/strong> JavaScripti faili registreerimiseks ja j\u00e4rjekorda seadmiseks).<\/p>\n<p><strong>AbstractSubscriber<\/strong> sisaldab seda funktsiooni, nii et seda saavad kutsuda k\u00f5ik alamklassid. <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/d8bed85851dad283183d84a819dd6c9a#file-00-log-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Funktsioon on \u00fcsna lihtne:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/**\n * Prints a message to the debug file that can easily be called by any subclass.\n *\n * @param mixed $message      an object, array, string, number, or other data to write to the debug log\n * @param bool  $shouldNotDie whether or not the The function should exit after writing to the log\n *\n *\/\nprotected function log($message, $shouldNotDie = true)\n{\n    error_log(print_r($message, true));\n    if ($shouldNotDie) {\n        exit;\n    }\n}<\/code><\/pre>\n<p>Kuid selle funktsiooni juures on mitmeid asju, mis v\u00f5ivad p\u00f5him\u00f5tet rikkuda v\u00f5i k\u00e4ivitada koodikvaliteedi t\u00f6\u00f6riistades vigu.<\/p>\n<h3>Valikulised Boole&#8217;i \u200b\u200bargumendid<\/h3>\n<p>Kui funktsioon aktsepteerib valikulist t\u00f5ev\u00e4\u00e4rtusargumenti, v\u00f5ib see viidata sellele, et funktsioonil on rohkem kui \u00fcks vastutus (see rikub <a href=\"https:\/\/en.wikipedia.org\/wiki\/Single_responsibility_principle\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00fche vastutuse p\u00f5him\u00f5tet<\/a> ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162356-61e73cdb388b5.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162356-61e73cdb388b5.png\" alt=\"S\u00f5numite kirjutamine WordPressi silumislogi\"><\/a><\/p>\n<p>P\u00f5hjus, miks see nimetatud p\u00f5him\u00f5tet rikub, on see, et see annab moodulile rohkem kui \u00fche p\u00f5hjuse muutmiseks.<\/p>\n<p>Mul on mugav seda nii kirjutada, sest ma kasutan seda silumiseks, mitte tootmiskeskkondade jaoks, ja kuna m\u00f5nikord v\u00f5ib tekkida soov t\u00e4itmine peatada, aga m\u00f5nikord mitte.<\/p>\n<p>Ja kindlasti, ma v\u00f5iksin kirjutada kaks erinevat funktsiooni, kuid kui see on ainus funktsioon, mis seda teeb, olen sellega n\u00f5us.<\/p>\n<h3>Keelatud lahkumise avaldused<\/h3>\n<p>Teistele koodikvaliteedi t\u00f6\u00f6riistadele ei meeldi <strong>v\u00e4ljumisavaldus<\/strong> (ja sarnaselt ei meeldi neile ka <strong>die<\/strong> avaldus). Ja see on arusaadav: nad peatavad tavaliselt programmi t\u00e4ielikult, kui peaksime tegema erandi, tagastama v\u00e4\u00e4rtuse v\u00f5i \u00fcldiselt midagi ette v\u00f5tma, et olukorda graatsiliselt k\u00e4sitleda.<\/p>\n<p>J\u00e4llegi, kuna selle funktsiooni puhul on aegu, kus tahan t\u00e4itmise peatada, on minu jaoks t\u00e4iesti okei tegeleda funktsioonis koodirea olemasolu tagaj\u00e4rgedega.<\/p>\n<p>Teise v\u00f5imalusena v\u00f5in kasutada <strong>wp_die()<\/strong> ja enamik koodikvaliteedi t\u00f6\u00f6riistu seda t\u00f5en\u00e4oliselt ei tabaks, kuid see varjab p\u00f5hiprobleemi. Kui midagi, siis v\u00f5ib-olla on k\u00f5ige parem hoiatus lihtsalt maha suruda, kasutades mis tahes k\u00e4sku, mida teie valitud nuusutaja lubab.<\/p>\n<h2>Sellest hoolimata logige s\u00f5num sisse<\/h2>\n<p>L\u00f5ppkokkuv\u00f5ttes on \u00fclaltoodud funktsiooni eesm\u00e4rk pakkuda lihtsat viisi WordPressi silumislogi kirjutamiseks ja soovi korral programmi k\u00e4ivitamise peatamiseks.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162356-61e73ce108d1e.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162356-61e73ce108d1e.png\" alt=\"S\u00f5numite kirjutamine WordPressi silumislogi\"><\/a><\/p>\n<p>Ilmselgelt pole see probleemideta ja saadaval on kvaliteetsemaid teeke, kuid m\u00f5nikord pole probleemse p\u00f6idla jaoks vaja haamrit.<\/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>Siin on lihtne funktsioon WordPressi silumislogi kirjutamiseks (see pole ilma m\u00f5ne hoiatuseta). Tavaliselt kasutan seda kohalikus koodis abstraktsete klassidega t\u00f6\u00f6tades.<\/p>\n","protected":false},"author":1,"featured_media":235343,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[894,802,863],"tags":[1165],"class_list":["post-234141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kood","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/234141","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=234141"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/234141\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/235343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=234141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=234141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=234141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}