{"id":33,"date":"2007-02-07T18:10:00","date_gmt":"2007-02-07T18:10:00","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=33"},"modified":"2007-02-07T18:10:00","modified_gmt":"2007-02-07T18:10:00","slug":"smarty-petits-defauts-dun-moteur-de-template-archi-connu","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/","title":{"rendered":"Smarty : Petits d\u00e9fauts d&rsquo;un moteur de template archi connu"},"content":{"rendered":"<p>Cela fait des ann\u00e9es que j&rsquo;utilise Smarty (j&rsquo;y ai m\u00eame particip\u00e9 \u00e0 un moment avec le guru du programme, Messju). Je l&rsquo;utilise dor\u00e9navant quasi quotidiennement dans tous les programmes professionnels que je r\u00e9alise. Je pense pouvoir dire aujourd&rsquo;hui que j&rsquo;en connais (pratiquement) toutes les subtilit\u00e9s. Toutefois, Smarty n&rsquo;est pas exempt de d\u00e9fauts. Voici pour moi les principaux.<br \/>\n<!--more--><br \/>\n* Il n&rsquo;a pas \u00e9t\u00e9 con\u00e7u \u00ab\u00a0objet\u00a0\u00bb d\u00e8s le d\u00e9part (c&rsquo;est pr\u00e9vu pour la prochaine version majeure), ce qui fait utiliser \u00e9norm\u00e9ment de tableaux. Certes, les tableaux sont plus efficaces niveau ressource, mais g\u00e9rer des objets est tellement puissant qu&rsquo;on se dit qu&rsquo;on peut mettre les quelques milisecondes de perdues en execution de c\u00f4t\u00e9 \ud83d\ude09 Par contre cela pose un r\u00e9el probl\u00e8me c\u00f4t\u00e9 \u00ab\u00a0template\u00a0\u00bb * Jusqu&rsquo;\u00e0 r\u00e9cemment, il ne passait pas le passage en error_reporting (E_ALL), c&rsquo;est \u00e0 dire l&rsquo;affichage des notices (variables non d\u00e9clar\u00e9es principalement). * Le nom des fichiers de templates compil\u00e9s, ou le nom des fichiers de cache (identique, mais pas dans le m\u00eame r\u00e9pertoire) est assez folklorique. C&rsquo;est s\u00fbr qu&rsquo;on a pas envie d&rsquo;aller chercher le fichier \u00e0 la main au milieu de l&rsquo;arborescence cr\u00e9\u00e9e ! * Il y a eu un effort de s\u00e9paration du code, pour que l&rsquo;utilisation d&rsquo;un fichier en cache ne demande pas le parcours de toute la librairie PHP mais de juste les fonctions n\u00e9cessaires. Toutefois, je pense qu&rsquo;on peut encore mieux faire de ce c\u00f4t\u00e9 l\u00e0. * Pour la concat\u00e9nation ou le calcul math\u00e9matique dans les templates, c&rsquo;est pas forc\u00e9ment tr\u00e8s facile, m\u00eame si l\u00e0 encore de gros efforts ont \u00e9t\u00e9 fournis derni\u00e8rement. * De m\u00eame pour l&rsquo;utilisation d&rsquo;objets ou de m\u00e9thodes d&rsquo;objets dans les templates; Smarty a tendance a s&#8217;emm\u00ealer les pinceaux (ou plut\u00f4t son utilisateur !). Je n&rsquo;ai fait qu&rsquo;aborder les soucis que posent Smarty. Ce syst\u00e8me a \u00e9galement d&rsquo;\u00e9normes avantages que je n&rsquo;ai pas d\u00e9crit ici \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cela fait des ann\u00e9es que j&rsquo;utilise Smarty (j&rsquo;y ai m\u00eame particip\u00e9 \u00e0 un moment avec le guru du programme, Messju). Je l&rsquo;utilise dor\u00e9navant quasi quotidiennement dans tous les programmes professionnels que je r\u00e9alise. Je pense pouvoir dire aujourd&rsquo;hui que j&rsquo;en connais (pratiquement) toutes les subtilit\u00e9s. Toutefois, Smarty n&rsquo;est pas exempt de d\u00e9fauts. Voici pour moi les principaux.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[29,41],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-php-sql","tag-php","tag-smarty"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Smarty : Petits d\u00e9fauts d&#039;un moteur de template archi connu - My thoughts<\/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:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Smarty : Petits d\u00e9fauts d&#039;un moteur de template archi connu - My thoughts\" \/>\n<meta property=\"og:description\" content=\"Cela fait des ann\u00e9es que j&#039;utilise Smarty (j&#039;y ai m\u00eame particip\u00e9 \u00e0 un moment avec le guru du programme, Messju). Je l&#039;utilise dor\u00e9navant quasi quotidiennement dans tous les programmes professionnels que je r\u00e9alise. Je pense pouvoir dire aujourd&#039;hui que j&#039;en connais (pratiquement) toutes les subtilit\u00e9s. Toutefois, Smarty n&#039;est pas exempt de d\u00e9fauts. Voici pour moi les principaux.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2007-02-07T18:10:00+00:00\" \/>\n<meta name=\"author\" content=\"olivier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"olivier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/\",\"name\":\"Smarty : Petits d\u00e9fauts d'un moteur de template archi connu - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2007-02-07T18:10:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Smarty : Petits d\u00e9fauts d&rsquo;un moteur de template archi connu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\",\"name\":\"olivier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"caption\":\"olivier\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Smarty : Petits d\u00e9fauts d'un moteur de template archi connu - My thoughts","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:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/","og_locale":"fr_FR","og_type":"article","og_title":"Smarty : Petits d\u00e9fauts d'un moteur de template archi connu - My thoughts","og_description":"Cela fait des ann\u00e9es que j'utilise Smarty (j'y ai m\u00eame particip\u00e9 \u00e0 un moment avec le guru du programme, Messju). Je l'utilise dor\u00e9navant quasi quotidiennement dans tous les programmes professionnels que je r\u00e9alise. Je pense pouvoir dire aujourd'hui que j'en connais (pratiquement) toutes les subtilit\u00e9s. Toutefois, Smarty n'est pas exempt de d\u00e9fauts. Voici pour moi les principaux.","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/","og_site_name":"My thoughts","article_published_time":"2007-02-07T18:10:00+00:00","author":"olivier","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"olivier","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/","name":"Smarty : Petits d\u00e9fauts d'un moteur de template archi connu - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2007-02-07T18:10:00+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2007\/02\/07\/smarty-petits-defauts-dun-moteur-de-template-archi-connu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Smarty : Petits d\u00e9fauts d&rsquo;un moteur de template archi connu"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96","name":"olivier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","caption":"olivier"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}