{
    "href": "/post/2013/09/30/aura-for-php-lessons-learned-and-looking-ahead/",
    "relId": "2013/09/30/aura-for-php-lessons-learned-and-looking-ahead",
    "title": "Aura for PHP: Lessons Learned, and Looking Ahead",
    "author": "pmjones",
    "markup": "html",
    "tags": [
        {
            "href": "/tag/aura/",
            "relId": "aura",
            "title": "Aura",
            "author": null,
            "created": "2020-09-14 21:51:57 UTC",
            "updated": [
                "2020-09-14 21:51:57 UTC"
            ],
            "markup": "markdown"
        },
        {
            "href": "/tag/php/",
            "relId": "php",
            "title": "PHP",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        },
        {
            "href": "/tag/programming/",
            "relId": "programming",
            "title": "Programming",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        }
    ],
    "created": "2013-09-30 22:00:35 UTC",
    "updated": [
        "2013-09-30 22:00:35 UTC"
    ],
    "html": "<blockquote>\n<p>\u00e2\u0080\u009cLibraries first\u00e2\u0080\u009d is the way to go; it imposes good discipline</p>\n<p>Extracting is detailed work, but you get testable units</p>\n<p>DependencyInjection is awesome \u00e2\u0080\u00a6</p>\n<p>\u00e2\u0080\u00a6 but in-library ServiceLocators can be useful</p>\n<p>There are still lots of PHP 5.3 users</p>\n<p>If you have server or session vars in your HTTP request object, it\u00e2\u0080\u0099s not an HTTP request object</p>\n<p>Some packages are still too broad in scope</p>\n<p>From PEAR to Composer</p>\n<p>People love ORMs</p>\n<p>New packages: Aura.Dispatcher, Aura.Includer, Aura.Sql_Query, and others</p>\n<p>PHP 5.3 support in some new packages</p>\n</blockquote>\n<p>via <a href=\"http://auraphp.com/blog/2013/09/30/lessons-learned/\">Aura for PHP</a>.</p>\n"
}
