{"id":1139,"date":"2013-10-31T22:03:27","date_gmt":"2013-10-31T21:03:27","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=1139"},"modified":"2014-03-17T23:28:48","modified_gmt":"2014-03-17T22:28:48","slug":"mediawiki-extension-installer","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/","title":{"rendered":"MediaWiki extension installer"},"content":{"rendered":"<div id=\"pN7RmhDXItdrT10z52+dK7YPKS3O1B0IIL9sfNM3k3w=_14210b2d28e:14f0906:9e4623b6_entryContent\" itemprop=\"description\">\n<p>During <a href=\"https:\/\/semantic-mediawiki.org\/wiki\/SMWCon_Fall_2013\/\" target=\"_blank\">SMWCon earlier this week<\/a> I hacked up a tool to install MediaWiki extensions with Composer.<\/p>\n<p><a href=\"http:\/\/getcomposer.org\/\" target=\"_blank\">Composer<\/a> is a dependency manager, in other words a tool that automates many of the tasks that people installing MediaWiki extensions currently need to deal with manually.<\/p>\n<p>Right now one needs to bother with all of these things when installing a MediaWiki extension:<\/p>\n<ul>\n<li>Where do I download it from, and how? (A: this depends on the extension and can vary a lot)<\/li>\n<li>Where do I put it, and how do I load it? (A: editing a PHP file and adding a PHP includes into it)<\/li>\n<li>What other extensions or libraries are needed? (A: it depends, and often this is not well documented)<\/li>\n<li>What versions of those extensions are compatible? (A: it depends, and rarely is well documented)<\/li>\n<li>In what order do I need to include the extensions? (A: indeed, it depends, and is often not well documented)<\/li>\n<\/ul>\n<p>And this process need to be applies recursively to all dependencies. Ugh! Not exactly user friendly.<\/p>\n<p>And this whole list ought to simply not be there, as this work can be automated. This is what Composer does.<\/p>\n<p>So why does <a href=\"https:\/\/www.mediawiki.org\/\" target=\"_blank\">MediaWiki<\/a> not support this? There are a few hurdles:<\/p>\n<p>1. Each extension needs to specify its dependencies in a structured format. This is similar is with other types of packages, such as debian packages or npm packages. While this is not hard to do, extension authors do need to first provided this before their extensions can be installed with Composer.<\/p>\n<p>2. A lot of extensions follow the bad practice of assuming they get included in global scope. This is a technical issue, which comes again down to most extensions needing some work before they can be installed with Composer.<\/p>\n<p>3. Due to political issues in the core MediaWiki community, it is hard to get proper support for Composer in MediaWiki itself.<\/p>\n<p>A lot of my extensions support installation via Composer right now. The only thing that prevented people from using this support was the third point, lacking support in MediaWiki core.<\/p>\n<p>Not so long ago I realized that it\u2019d be trivial to create a small wrapper around Composer that pretends to be a MediaWiki extension, and is installed as MediaWiki extension. And then once installed, people can install other extensions on top of it.<\/p>\n<p>This is exactly what I ended up doing. You can download it from GitHub, where the documentation is also located.<\/p>\n<ul>\n<li>Documentation: https:\/\/github.com\/JeroenDeDauw\/ExtensionInstaller<\/li>\n<li><a href=\"https:\/\/github.com\/JeroenDeDauw\/ExtensionInstaller\/archive\/master.zip\" target=\"_blank\">Download as zip<\/a><\/li>\n<li>Git clone: https:\/\/github.com\/JeroenDeDauw\/ExtensionInstaller.git<\/li>\n<\/ul>\n<p>The documentation there explains how to install and use this extension installer, as well as how to find existing extensions that support installation via it.<\/p>\n<p>Going on the very positive reception at SMWCon, I hope that this will make users lives easier.<\/p>\n<p>Things I\u2019d like to see happen to further improve extension installation are:<\/p>\n<ul>\n<li>Have MediaWiki core support extension installation via Composer, so this meta-extension is not needed.<\/li>\n<li>Have a user interface build on top of Composer, so people are not forced to use the command line if they don\u2019t want to do so.<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>During SMWCon earlier this week I hacked up a tool to install MediaWiki extensions with Composer. Composer is a dependency&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-1139","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MediaWiki extension installer - Blog of Jeroen De Dauw<\/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.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MediaWiki extension installer - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"During SMWCon earlier this week I hacked up a tool to install MediaWiki extensions with Composer. Composer is a dependency&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-31T21:03:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-03-17T22:28:48+00:00\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"MediaWiki extension installer\",\"datePublished\":\"2013-10-31T21:03:27+00:00\",\"dateModified\":\"2014-03-17T22:28:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/\"},\"wordCount\":521,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/\",\"name\":\"MediaWiki extension installer - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"datePublished\":\"2013-10-31T21:03:27+00:00\",\"dateModified\":\"2014-03-17T22:28:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2013\\\/10\\\/31\\\/mediawiki-extension-installer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MediaWiki extension installer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MediaWiki extension installer - Blog of Jeroen De Dauw","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.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/","og_locale":"en_US","og_type":"article","og_title":"MediaWiki extension installer - Blog of Jeroen De Dauw","og_description":"During SMWCon earlier this week I hacked up a tool to install MediaWiki extensions with Composer. Composer is a dependency&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2013-10-31T21:03:27+00:00","article_modified_time":"2014-03-17T22:28:48+00:00","author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"MediaWiki extension installer","datePublished":"2013-10-31T21:03:27+00:00","dateModified":"2014-03-17T22:28:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/"},"wordCount":521,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/","url":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/","name":"MediaWiki extension installer - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"datePublished":"2013-10-31T21:03:27+00:00","dateModified":"2014-03-17T22:28:48+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2013\/10\/31\/mediawiki-extension-installer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"MediaWiki extension installer"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-in","jetpack-related-posts":[{"id":1172,"url":"https:\/\/www.entropywins.wtf\/blog\/2014\/01\/02\/mediawiki-extensions-to-define-their-mediawiki-compatibility\/","url_meta":{"origin":1139,"position":0},"title":"MediaWiki extensions to define their MediaWiki compatibility","author":"Jeroen","date":"2014-01-02","format":false,"excerpt":"Over the past year support for real dependency management has been gradually added to MediaWiki and selected extensions. This support being based on the Composer software. While extensions have been able to specify their dependencies for a while, such as PHP libraries and other extensions, they where not able to\u2026","rel":"","context":"In \"composer\"","block_context":{"text":"composer","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/composer\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1153,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/11\/24\/introduction-to-composer-for-mediawiki-developers\/","url_meta":{"origin":1139,"position":1},"title":"Introduction to Composer for MediaWiki developers","author":"Jeroen","date":"2013-11-24","format":false,"excerpt":"This post aims to be a quick start guide for MediaWiki extension developers that want to get their extension to be installable via Composer. If you are not yet familiar with Composer, I recommend you have a look at the Composer page on MediaWiki.org before continuing with this post. Defining\u2026","rel":"","context":"In \"composer\"","block_context":{"text":"composer","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/composer\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2013\/11\/logo-composer-transparent.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1158,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/11\/24\/upgrading-an-extension-that-now-uses-composer\/","url_meta":{"origin":1139,"position":2},"title":"Upgrading an extension that now uses Composer","author":"Jeroen","date":"2013-11-24","format":false,"excerpt":"This blog post is aimed at users of the MediaWiki software that have extensions installed, and want to upgrade one or more to a version that makes use of Composer. At present this is of particular relevance for those upgrading to SMW 1.9 beta or Maps 3.0 alpha. If you\u2026","rel":"","context":"In \"composer\"","block_context":{"text":"composer","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/composer\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2941,"url":"https:\/\/www.entropywins.wtf\/blog\/2025\/08\/20\/why-you-should-use-mediawiki-lts-versions\/","url_meta":{"origin":1139,"position":3},"title":"Why You Should Skip MediaWiki 1.44","author":"Jeroen","date":"2025-08-20","format":false,"excerpt":"Or: Why you should stop worrying and love the LTS releases. TL;DR: Stick to MediaWiki 1.43 LTS, avoid MediaWiki 1.44, 1.45, and 1.46. There are two major MediaWiki releases every year, and every fourth such release gets Long Term Support (LTS). Two consistent approaches to upgrading MediaWiki are to upgrade\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/www.entropywins.wtf\/blog\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2025\/08\/MediaWikiLTS.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1052,"url":"https:\/\/www.entropywins.wtf\/blog\/2011\/01\/01\/new-mediawiki-extension-subpagelist\/","url_meta":{"origin":1139,"position":4},"title":"New MediaWiki extension: SubPageList","author":"Jeroen","date":"2011-01-01","format":false,"excerpt":"During 27c3 someone asked me to install an extension to list subpages onto the hackerspace.be wiki. I picked SubPageList3, as it seemed to most decent one. I did a simple test to see if it was working, and immediately found a namespace bug. So I decided to quickly rewrite it\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"SubPageList extension","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2011\/01\/Splist_1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1160,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/11\/28\/my-adventures-with-autoloading-in-php\/","url_meta":{"origin":1139,"position":5},"title":"My adventures with autoloading in PHP","author":"Jeroen","date":"2013-11-28","format":false,"excerpt":"This post has as audience developers and will provide readers with insights on how to cleanly autoload classes in PHP. For a long long time, I\u2019ve been one of those MediaWiki developers that just added classes and file names to $wgAutoloadClasses, without really knowing how this made class loading work\u2026","rel":"","context":"In \"Autoloading\"","block_context":{"text":"Autoloading","link":"https:\/\/www.entropywins.wtf\/blog\/tag\/autoloading\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=1139"}],"version-history":[{"count":3,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1139\/revisions"}],"predecessor-version":[{"id":1269,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1139\/revisions\/1269"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}