Eduardo Garcia bio photo


Eduardo Garcia

Knowmad by definition

Location: Costa Rica

Twitter Facebook  QQ交谈 Google+ Github LinkedIn Feed

Maybe you hear about the project Drupal Console or maybe not because is an independent project related with Drupal 8.

If you are a older Drupal user/developer you could find some similarities with Drush Project, and to be honest there are some similarities.

But if you are a Symfony developer you will find some similarities with Console Component and actually it's what it is, Drupal Console is an implementation of Symfony Component to meet the Drupal 8 Way.

The Drupal Console, embrace the principles of Drupal 8 about using Symfony 2 components and other libraries to solve the commons problems instead to reinvent the wheel for everything, that concept is called PIE ( Proudly Invented Elsewhere).

Using the Symfony Console Component David Flores and Jesus Olivas start a project to implement the same concept from Symfony to Drupal 8.

One of the incentives to create the project Drupal Console was have a pet project to force them to learn the Drupal 8 way.

But now the project is not a pet project anymore, you can see the full list of contributors at and if you want be part of this project just drop a message using the Gitter room .

The majority of commands in Drupal Console require a Drupal 8 instance, because the bootstrap of Drupal 8 is loaded to have access to all classes and libraries used in Drupal 8, to avoid re invent the wheel. But of course you can contribute commands without a dependency of Drupal 8.

Right now the Drupal Console has 28 commands listed below

$ drupal list
Drupal Console version 0.6.5

Available commands:
 cr                              Rebuild and clear all site caches.
 drush                           Run drush from console.
 help                            Displays help for a command
 list                            Lists commands
 self-update                     Update the console to latest version.
 cache:rebuild                   Rebuild and clear all site caches.
 config:debug                    Show the current configuration.
 container:debug                 Displays current services for an application.
 generate:command                Generate commands for the console.
 generate:controller             Generate & Register a controller
 generate:entity:config          Generate a new "EntityConfig"
 generate:entity:content         Generate a new "EntityContent"
 generate:form:config            Generate a new "ConfigFormBase"
 generate:module                 Generate a module.
 generate:plugin:block           Generate a plugin block
 generate:plugin:imageeffect     Generate image effect plugin.
 generate:plugin:rest:resource   Generate plugin rest resource
 generate:service                Generate service
 migrate:debug                   Display current migration available for the application
 migrate:execute                 Execute a migration available for application
 module:debug                    Display current modules available for application
 module:download                 Install module or modules in the application
 module:install                  Install module or modules in the application
 module:uninstall                Install module or modules in the application
 router:debug                    Displays current routes for the application
 router:rebuild                  Rebuild routes for the application

Most of them are oriented to generate code to speed up the process of development for Drupal 8, but in the same way of Symfony Console has commands to interact with Cache, Migrate and Database you can contribute modules for any purpose, so your imagination is the limit.

In my personal case I'm the contributor of commands related with Drupal 8 Migrate and Modules integration. My inspiration to create these commands wasn't to replace Drush, my ideas was to really understand how the Migration process works and be aware the module activation process.

After complete these commands now I can say I understand how Drupal 8 Migrate process works and how a module is installed and uninstalled.

But the learning process doesn't end in Drupal 8 components, when I try to create the command module:download I have to declare libraries Zippy and DOMQuery as dependencies using Composer. Why code that libraries myself if I can use code create for non Drupal Developers :P.

So right now we are looking for testers and coders for new commands to improve the Drupal Console, if you think you can contribute with Drupal Console core you are more than welcome.

Also we expect in the future contribute to Symfony Console Component some code based in our needs, again why create island of code, instead of that push back code to the core and help other Open Source projects.


comments powered by Disqus