{"id":1151,"date":"2010-09-21T14:50:08","date_gmt":"2010-09-21T12:50:08","guid":{"rendered":"http:\/\/lloc.de\/?p=1151"},"modified":"2025-09-12T14:17:59","modified_gmt":"2025-09-12T12:17:59","slug":"i-presupposti-minimi-di-un-sistema","status":"publish","type":"post","link":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/","title":{"rendered":"I presupposti minimi di un sistema"},"content":{"rendered":"<p>In questi giorni sto lavorando su alcuni aspetti che mi sembrano importanti per il miglioramento dei miei plugin, come il refactoring del codice e qualche feature che mi interessa avere. Per esempio <a href=\"https:\/\/ploetner.io\/it\/wp-scgeshi\/\">scGeSHi<\/a> necessita di una pagina nel pannello di amministrazione di WordPress, dove \u00e8 possibile configurare le prestazioni di base del plugin. Altro aspetto interessante per me \u00e8 avere finalmente la possibilit\u00e0 di svuotare il cache.<!--more--><\/p>\n<p>Ho deciso che in futuro scriver\u00f2 tutto il codice PHP soltanto partendo dalla versione 5.2 in poi. Se ho letto bene <a href=\"https:\/\/codex.wordpress.org\/Hosting_WordPress\">la versione 3.2 di WordPress<\/a> richieder\u00e0 anche la versione 5.2 di PHP e &#8211; ad essere sincero &#8211; mi mancano sia la voglia che il tempo di controllare continuamente se c&#8217;\u00e8 qualcuno che fa ancora girare una vecchia installazione del linguaggio. Poi c&#8217;\u00e8 da dire che per i miei gusti le prestazioni di base che hanno stabilito gli sviluppatori di WordPress non sono ancora sufficienti.<\/p>\n<p>Gi\u00e0 con PHP 5.3 potrebbe diventare possibile evitare qualche problema, noto soprattutto agli sviluppatori dei plugin, grazie ai <a href=\"https:\/\/www.php.net\/manual\/en\/language.namespaces.rationale.php\">namespaces<\/a> finalmente introdotti. Ma a parte tutto questo uso in tanti casi il <a href=\"https:\/\/ploetner.io\/it\/la-transients-api-di-wordpress\/\">Transients API<\/a> che \u00e8 parte di WordPress dalla versione 2.8. Inoltre, per non richiedere sempre se esiste o meno una determinata funzionalit\u00e0, preferirei poterne essere sicuro gi\u00e0 nel momento dell&#8217;attivazione di un plugin. Questo mi porta direttamente a <em>register_activation_hook<\/em> e a una mia prima bozza:<\/p>\n<p>Con <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_activation_hook\">register_activation_hook<\/a> viene registrata una funzione a cui si ricorre quando si attiva un plugin. E&#8217; importante sapere che in questa funzione non si ha accesso alle variabili globali dell&#8217;istanza di WordPress. Per questo motivo non uso <em>$wp_version<\/em> per ottenere la versione di WP bens\u00ec <em>get_bloginfo(&#8216;version&#8217;)<\/em>. La versione di PHP utilizzata si trova anche nella costante <em>PHP_VERSION<\/em>. Ma penso si tratti solo di una questione di gusti.<\/p>\n<p>Ricorro inoltre alla funzione <a href=\"https:\/\/www.php.net\/manual\/en\/function.version-compare.php\">version_compare<\/a> di PHP per mettere a confronto le versioni, cosa che mi sembra pi\u00f9 sensata di qualche costrutto che gira in rete. Infine voglio assicurarmi anche che il plugin si disattivi in caso di errore. Se si esce dalla funzione soltanto con <em>die()<\/em>, si ottiene un messaggio di errore ma il plugin resta comunque attivo. All&#8217;inizio mi \u00e8 sembrato un po&#8217; strano tuttavia \u00e8 logico se si pensa al momento esatto in cui il processo viene eseguito.<\/p>\n<p>Se qualcuno avesse una soluzione alternativa, mi farebbe molto piacere dare un&#8217;occhiata!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questi giorni sto lavorando su alcuni aspetti che mi sembrano importanti per il miglioramento dei miei plugin, come il refactoring del codice e qualche feature che mi interessa avere. Per esempio scGeSHi necessita di una pagina nel pannello di amministrazione di WordPress, dove \u00e8 possibile configurare le prestazioni di base del plugin. Altro aspetto &hellip; <a href=\"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;I presupposti minimi di un sistema&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2,5],"tags":[19,21,31],"class_list":["post-1151","post","type-post","status-publish","format-aside","hentry","category-code","category-wordpress","tag-php","tag-plugin","tag-wordpress-2","post_format-post-format-aside"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>I presupposti minimi di un sistema - realloc&#039;s asylum<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I presupposti minimi di un sistema - realloc&#039;s asylum\" \/>\n<meta property=\"og:description\" content=\"In questi giorni sto lavorando su alcuni aspetti che mi sembrano importanti per il miglioramento dei miei plugin, come il refactoring del codice e qualche feature che mi interessa avere. Per esempio scGeSHi necessita di una pagina nel pannello di amministrazione di WordPress, dove \u00e8 possibile configurare le prestazioni di base del plugin. Altro aspetto &hellip; Leggi tutto &quot;I presupposti minimi di un sistema&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/\" \/>\n<meta property=\"og:site_name\" content=\"realloc&#039;s asylum\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-21T12:50:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T12:17:59+00:00\" \/>\n<meta name=\"author\" content=\"realloc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"realloc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/\"},\"author\":{\"name\":\"realloc\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"headline\":\"I presupposti minimi di un sistema\",\"datePublished\":\"2010-09-21T12:50:08+00:00\",\"dateModified\":\"2025-09-12T12:17:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/\"},\"wordCount\":398,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"keywords\":[\"php\",\"plugin\",\"wordpress\"],\"articleSection\":[\"Codice\",\"WordPress\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/\",\"name\":\"I presupposti minimi di un sistema - realloc&#039;s asylum\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#website\"},\"datePublished\":\"2010-09-21T12:50:08+00:00\",\"dateModified\":\"2025-09-12T12:17:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/i-presupposti-minimi-di-un-sistema\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ploetner.io\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"I presupposti minimi di un sistema\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/\",\"name\":\"realloc's asylum\",\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ploetner.io\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\",\"name\":\"realloc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"contentUrl\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"width\":847,\"height\":848,\"caption\":\"realloc\"},\"logo\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/9\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\"},\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"sameAs\":[\"https:\\\/\\\/ploetner.io\\\/\"],\"url\":\"https:\\\/\\\/ploetner.io\\\/it\\\/author\\\/realloc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"I presupposti minimi di un sistema - realloc&#039;s asylum","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/","og_locale":"it_IT","og_type":"article","og_title":"I presupposti minimi di un sistema - realloc&#039;s asylum","og_description":"In questi giorni sto lavorando su alcuni aspetti che mi sembrano importanti per il miglioramento dei miei plugin, come il refactoring del codice e qualche feature che mi interessa avere. Per esempio scGeSHi necessita di una pagina nel pannello di amministrazione di WordPress, dove \u00e8 possibile configurare le prestazioni di base del plugin. Altro aspetto &hellip; Leggi tutto \"I presupposti minimi di un sistema\"","og_url":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/","og_site_name":"realloc&#039;s asylum","article_published_time":"2010-09-21T12:50:08+00:00","article_modified_time":"2025-09-12T12:17:59+00:00","author":"realloc","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"realloc","Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/#article","isPartOf":{"@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/"},"author":{"name":"realloc","@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"headline":"I presupposti minimi di un sistema","datePublished":"2010-09-21T12:50:08+00:00","dateModified":"2025-09-12T12:17:59+00:00","mainEntityOfPage":{"@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/"},"wordCount":398,"commentCount":0,"publisher":{"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"keywords":["php","plugin","wordpress"],"articleSection":["Codice","WordPress"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/","url":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/","name":"I presupposti minimi di un sistema - realloc&#039;s asylum","isPartOf":{"@id":"https:\/\/ploetner.io\/it\/#website"},"datePublished":"2010-09-21T12:50:08+00:00","dateModified":"2025-09-12T12:17:59+00:00","breadcrumb":{"@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ploetner.io\/it\/i-presupposti-minimi-di-un-sistema\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ploetner.io\/it\/"},{"@type":"ListItem","position":2,"name":"I presupposti minimi di un sistema"}]},{"@type":"WebSite","@id":"https:\/\/ploetner.io\/it\/#website","url":"https:\/\/ploetner.io\/it\/","name":"realloc's asylum","description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","publisher":{"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ploetner.io\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":["Person","Organization"],"@id":"https:\/\/ploetner.io\/it\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8","name":"realloc","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","url":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","contentUrl":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","width":847,"height":848,"caption":"realloc"},"logo":{"@id":"https:\/\/ploetner.io\/it\/wp-content\/uploads\/sites\/7\/sites\/9\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg"},"description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","sameAs":["https:\/\/ploetner.io\/"],"url":"https:\/\/ploetner.io\/it\/author\/realloc\/"}]}},"_links":{"self":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/comments?post=1151"}],"version-history":[{"count":8,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1151\/revisions"}],"predecessor-version":[{"id":1598,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/posts\/1151\/revisions\/1598"}],"wp:attachment":[{"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/media?parent=1151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/categories?post=1151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ploetner.io\/it\/wp-json\/wp\/v2\/tags?post=1151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}