{"id":285,"date":"2010-06-07T10:42:44","date_gmt":"2010-06-07T08:42:44","guid":{"rendered":"http:\/\/grummfy.be\/blog\/?p=285"},"modified":"2010-06-04T15:22:08","modified_gmt":"2010-06-04T13:22:08","slug":"espace-de-nom-php-et-chargement-automatique","status":"publish","type":"post","link":"https:\/\/grummfy.be\/blog\/285","title":{"rendered":"Espace de nom PHP et chargement automatique"},"content":{"rendered":"<p><a href=\".\/zend-framework\">PHP<\/a> 5.3 ajoute une notion int\u00e9ressante : les espaces de nom (ou namespace en anglais). Les espaces de nom permettent de s\u00e9parer diff\u00e9rents &#8230; \u00ab\u00a0<em>espace<\/em>\u00ab\u00a0, permettant ainsi d&rsquo;avoir deux classe portant le m\u00eame nom. Id\u00e9al pour l&rsquo;utilisation de framework mais aussi de \u00ab\u00a0l&rsquo;isolation\u00a0\u00bb de certains composants. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant les espaces de nom.<\/p>\n<p>Si vous \u00eates sous Ms Windows, aucun probl\u00e8me un simple <em>spl_autoload_register();<\/em> suffit. Malheureusement, sous *nix un <a href=\"http:\/\/bugs.php.net\/bug.php?id=51991\" target=\"_blank\">bug existe<\/a> il faudra donc impl\u00e9ment\u00e9 une solution maison.<\/p>\n<h2>Le code<\/h2>\n<p>Ce code provient du \u00ab\u00a0<a href=\"http:\/\/groups.google.com\/group\/php-standards\/web\/psr-0-final-proposal\">PHP  Standards Working Group<\/a>\u00a0\u00bb :<\/p>\n<pre lang=\"PHP\">\r\nfunction autoload($className)\r\n{\r\n\t$className = ltrim($className, '\\\\');\r\n\t$fileName  = '';\r\n\t$namespace = '';\r\n\tif ($lastNsPos = strripos($className, '\\\\'))\r\n\t{\r\n\t\t$namespace = substr($className, 0, $lastNsPos);\r\n\t\t$className = substr($className, $lastNsPos + 1);\r\n\t\t$fileName  = str_replace('\\\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;\r\n\t}\r\n\t$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';\r\n\r\n\trequire $fileName;\r\n}\r\n<\/pre>\n<\/p>\n<p>Pour l&rsquo;utiliser, il faut d\u00e9finir deux choses :<\/p>\n<ol>\n<li>Ne pas oublier de modifier l&rsquo;include path si n\u00e9cessaire.<\/li>\n<li>Ajouter cette fonction au chargeur de classes pr\u00e9sent.<\/li>\n<\/ol>\n<h2>L&rsquo;exemple<\/h2>\n<p>Voici un exemple un peu plus complet.<br \/>\nindex.php<\/p>\n<pre lang=\"PHP\">\r\n<?php\r\nset_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '\/lib\/');\/\/on ajoute le dossier lib dans l'include path\r\nspl_autoload_register();\/\/sur windows ceci devrait suffire .\r\n\/\/le code pour les autres\r\n\/\/----------------------------------------------------------\r\nfunction autoload($className)\r\n{\r\n\t$className = ltrim($className, '\\\\');\r\n\t$fileName  = '';\r\n\t$namespace = '';\r\n\tif ($lastNsPos = strripos($className, '\\\\'))\r\n\t{\r\n\t\t$namespace = substr($className, 0, $lastNsPos);\r\n\t\t$className = substr($className, $lastNsPos + 1);\r\n\t\t$fileName  = str_replace('\\\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;\r\n\t}\r\n\t$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';\r\n\r\n\trequire $fileName;\r\n}\r\nspl_autoload_register('autoload');\r\n\/\/----------------------------------------------------------\r\n\/\/fin du code de fix\r\n\r\nuse grummfy\\test\\Test;\r\nTest::sayHello();\r\n\r\n\\grummfy\\std\\Test::sayHello();\r\n\r\n# EOF\r\n<\/pre>\n<p>.\/lib\/grummfy\/test\/Test.php<\/p>\n<pre lang=\"PHP\">\r\n<?php\r\nnamespace grummfy\\test;\/\/pour rappel ceci doit-\u00eatre la premi\u00e8re instruction php (et on ne doit pas avoir de HTML avant)\r\necho 'Je suis inclus (' . __FILE__ . ')!';\r\nclass Test\r\n{\r\n\tpublic static function sayHello()\r\n\t{\r\n\t\techo 'Bonjour depuis ' . __CLASS__;\r\n\t}\r\n}\r\n\r\n# EOF\r\n<\/pre>\n<p>.\/lib\/grummfy\/std\/Test.php<\/p>\n<pre lang=\"PHP\">\r\n<?php\r\nnamespace grummfy\\std;\r\necho 'Je suis inclus (' . __FILE__ . ')!';\r\nclass Test\r\n{\r\n\tpublic static function sayHello()\r\n\t{\r\n\t\techo 'Bonjour depuis ' . __CLASS__;\r\n\t}\r\n}\r\n\r\n# EOF\r\n<\/pre>\n<p>Le r\u00e9sultat devrait \u00eatre :<br \/>\n<code><br \/>\nJe suis inclus (\/...\/lib\/grummfy\/test\/Test.php)!<br \/>\nBonjour depuis grummfy\\test\\Test<br \/>\nJe suis inclus (\/...\/lib\/grummfy\/std\/Test.php)!<br \/>\nBonjour depuis grummfy\\std\\Test<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[10],"tags":[99,110,24,37],"class_list":["post-285","post","type-post","status-publish","format-standard","hentry","category-php","tag-namespace","tag-php","tag-programmation","tag-web"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Grummfy\"\/>\n\t<meta name=\"google-site-verification\" content=\"d4qc9gnvtzVc9s5gDVkEqZIVZLo42Wi\/lYmFP7\/G0Kw=\" \/>\n\t<meta name=\"keywords\" content=\"espace de nom,namespace,php,web,autoload,spl_autoload,spl_autoload_register,programmation\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/grummfy.be\/blog\/285\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Grummfy&#039;s project\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Grummfy&#039;s project .:. Espace de nom PHP et chargement automatique\" \/>\n\t\t<meta property=\"og:description\" content=\"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/grummfy.be\/blog\/285\" \/>\n\t\t<meta property=\"fb:admins\" content=\"580961199\" \/>\n\t\t<meta property=\"article:tag\" content=\"espace de nom\" \/>\n\t\t<meta property=\"article:tag\" content=\"namespace\" \/>\n\t\t<meta property=\"article:tag\" content=\"php\" \/>\n\t\t<meta property=\"article:tag\" content=\"web\" \/>\n\t\t<meta property=\"article:tag\" content=\"autoload\" \/>\n\t\t<meta property=\"article:tag\" content=\"spl_autoload\" \/>\n\t\t<meta property=\"article:tag\" content=\"spl_autoload_register\" \/>\n\t\t<meta property=\"article:tag\" content=\"programmation\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-06-07T08:42:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2010-06-04T13:22:08+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@Grummfy\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Grummfy&#039;s project .:. Espace de nom PHP et chargement automatique\" \/>\n\t\t<meta name=\"twitter:description\" content=\"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#article\",\"name\":\"Grummfy's project .:. Espace de nom PHP et chargement automatique\",\"headline\":\"Espace de nom PHP et chargement automatique\",\"author\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\"},\"datePublished\":\"2010-06-07T10:42:44+02:00\",\"dateModified\":\"2010-06-04T15:22:08+02:00\",\"inLanguage\":\"fr-BE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#webpage\"},\"articleSection\":\"PHP, namespace, PHP, programmation, web\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog#listItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/grummfy.be\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/php#listItem\",\"name\":\"PHP\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/php#listItem\",\"position\":2,\"name\":\"PHP\",\"item\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/php\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#listItem\",\"name\":\"Espace de nom PHP et chargement automatique\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog#listItem\",\"name\":\"Accueil\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#listItem\",\"position\":3,\"name\":\"Espace de nom PHP et chargement automatique\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/cat\\\/php#listItem\",\"name\":\"PHP\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\",\"name\":\"Grummfy's project\",\"description\":\"Mes projets, mes r\\u00eaves, mes envies, ...\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin\",\"name\":\"Grummfy\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/97f073e7de2fb1e9d5c5329eb7db2c6de1c5a80e8cfe9b1233473f78a1c908f6?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Grummfy\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#webpage\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285\",\"name\":\"Grummfy's project .:. Espace de nom PHP et chargement automatique\",\"description\":\"PHP 5.3 ajoute une notion int\\u00e9ressante : les espaces de nom. Voyons voir comment cr\\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.\",\"inLanguage\":\"fr-BE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/285#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/author\\\/admin#author\"},\"datePublished\":\"2010-06-07T10:42:44+02:00\",\"dateModified\":\"2010-06-04T15:22:08+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/\",\"name\":\"Grummfy's project\",\"description\":\"Mes projets, mes r\\u00eaves, mes envies, ...\",\"inLanguage\":\"fr-BE\",\"publisher\":{\"@id\":\"https:\\\/\\\/grummfy.be\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Grummfy's project .:. Espace de nom PHP et chargement automatique","description":"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.","canonical_url":"https:\/\/grummfy.be\/blog\/285","robots":"max-image-preview:large","keywords":"espace de nom,namespace,php,web,autoload,spl_autoload,spl_autoload_register,programmation","webmasterTools":{"google-site-verification":"d4qc9gnvtzVc9s5gDVkEqZIVZLo42Wi\/lYmFP7\/G0Kw=","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/grummfy.be\/blog\/285#article","name":"Grummfy's project .:. Espace de nom PHP et chargement automatique","headline":"Espace de nom PHP et chargement automatique","author":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"publisher":{"@id":"https:\/\/grummfy.be\/blog\/#organization"},"datePublished":"2010-06-07T10:42:44+02:00","dateModified":"2010-06-04T15:22:08+02:00","inLanguage":"fr-BE","mainEntityOfPage":{"@id":"https:\/\/grummfy.be\/blog\/285#webpage"},"isPartOf":{"@id":"https:\/\/grummfy.be\/blog\/285#webpage"},"articleSection":"PHP, namespace, PHP, programmation, web"},{"@type":"BreadcrumbList","@id":"https:\/\/grummfy.be\/blog\/285#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog#listItem","position":1,"name":"Accueil","item":"https:\/\/grummfy.be\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/php#listItem","name":"PHP"}},{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/php#listItem","position":2,"name":"PHP","item":"https:\/\/grummfy.be\/blog\/cat\/php","nextItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/285#listItem","name":"Espace de nom PHP et chargement automatique"},"previousItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog#listItem","name":"Accueil"}},{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/285#listItem","position":3,"name":"Espace de nom PHP et chargement automatique","previousItem":{"@type":"ListItem","@id":"https:\/\/grummfy.be\/blog\/cat\/php#listItem","name":"PHP"}}]},{"@type":"Organization","@id":"https:\/\/grummfy.be\/blog\/#organization","name":"Grummfy's project","description":"Mes projets, mes r\u00eaves, mes envies, ...","url":"https:\/\/grummfy.be\/blog\/"},{"@type":"Person","@id":"https:\/\/grummfy.be\/blog\/author\/admin#author","url":"https:\/\/grummfy.be\/blog\/author\/admin","name":"Grummfy","image":{"@type":"ImageObject","@id":"https:\/\/grummfy.be\/blog\/285#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/97f073e7de2fb1e9d5c5329eb7db2c6de1c5a80e8cfe9b1233473f78a1c908f6?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Grummfy"}},{"@type":"WebPage","@id":"https:\/\/grummfy.be\/blog\/285#webpage","url":"https:\/\/grummfy.be\/blog\/285","name":"Grummfy's project .:. Espace de nom PHP et chargement automatique","description":"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.","inLanguage":"fr-BE","isPartOf":{"@id":"https:\/\/grummfy.be\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/grummfy.be\/blog\/285#breadcrumblist"},"author":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"creator":{"@id":"https:\/\/grummfy.be\/blog\/author\/admin#author"},"datePublished":"2010-06-07T10:42:44+02:00","dateModified":"2010-06-04T15:22:08+02:00"},{"@type":"WebSite","@id":"https:\/\/grummfy.be\/blog\/#website","url":"https:\/\/grummfy.be\/blog\/","name":"Grummfy's project","description":"Mes projets, mes r\u00eaves, mes envies, ...","inLanguage":"fr-BE","publisher":{"@id":"https:\/\/grummfy.be\/blog\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Grummfy's project","og:type":"article","og:title":"Grummfy's project .:. Espace de nom PHP et chargement automatique","og:description":"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.","og:url":"https:\/\/grummfy.be\/blog\/285","fb:admins":"580961199","article:tag":["espace de nom","namespace","php","web","autoload","spl_autoload","spl_autoload_register","programmation"],"article:published_time":"2010-06-07T08:42:44+00:00","article:modified_time":"2010-06-04T13:22:08+00:00","twitter:card":"summary","twitter:site":"@Grummfy","twitter:title":"Grummfy's project .:. Espace de nom PHP et chargement automatique","twitter:description":"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci."},"aioseo_meta_data":{"post_id":"285","title":"#site_title .:. Espace de nom PHP et chargement automatique","description":"PHP 5.3 ajoute une notion int\u00e9ressante : les espaces de nom. Voyons voir comment cr\u00e9er un chargeur automatique (ou autoloader) comprenant ceux-ci.","keywords":[{"label":"espace de nom","value":"espace de nom"},{"label":"namespace","value":"namespace"},{"label":"PHP","value":"PHP"},{"label":"web","value":"web"},{"label":"autoload","value":"autoload"},{"label":"spl_autoload","value":"spl_autoload"},{"label":"spl_autoload_register","value":"spl_autoload_register"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-01-21 15:11:40","updated":"2025-06-04 00:24:42","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/grummfy.be\/blog\" title=\"Accueil\">Accueil<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/grummfy.be\/blog\/cat\/php\" title=\"PHP\">PHP<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEspace de nom PHP et chargement automatique\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Accueil","link":"https:\/\/grummfy.be\/blog"},{"label":"PHP","link":"https:\/\/grummfy.be\/blog\/cat\/php"},{"label":"Espace de nom PHP et chargement automatique","link":"https:\/\/grummfy.be\/blog\/285"}],"_links":{"self":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/comments?post=285"}],"version-history":[{"count":6,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/posts\/285\/revisions\/305"}],"wp:attachment":[{"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/media?parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/categories?post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grummfy.be\/blog\/wp-json\/wp\/v2\/tags?post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}