Drush and the Future of OO Tools
Drush uses a powerful and lightweight cli command dispatcher that has worked very well for the hundreds of Drush commands that have been written using it. However, with the advent of Composer, which provides a flexible autoloader for PHP classes, and Symfony, which includes an object-oriented cli command dispatcher that is already being used in projects like the Drupal Console, the time has come to consider what the options are for Drush in this new era.
There have been a number of discussions in the Drush issue queue on subjects related to modernization of the command dispatcher, including:
- #88: Use symfony console component in Drush.
- #342: Use Drush with other CMS systems (e.g. Backdrop).
- #572: Load Drush commands with Composer.
One key idea that has come up was splitting drush/core out from drush/drupal, essentially making a “split core” for Drush, similar to what was done recently in Drupal 8 core.
We will have an open discussion about the various open design decisions and their trade-offs.