tl;dr “Libraries first” is the way to go; it imposes good discipline Extracting is detailed work, but you get testable units DependencyInjection is awesome … … but in-library ServiceLocators can be useful There are still lots of PHP 5.3 users If you have server or session vars in your HTTP request object, it’s not an HTTP request object Some packages are still too broad in scope From PEAR to Compo