Kendi özel Drush komutlarınızı oluşturmak çok basittir. Bu blog yazısında Drupal 7 ve Drupal 8 için iki misal göstereceğiz
Özel Drush komutları oluşturmak, bilgileri Drupal'a içe aktarmanız veya bilgileri Drupal'dan dışa aktarmanız gerektiğinde çok faydalı olabilir. Özel komutunuzu çalıştırıp bash komut dosyasını crontab'a ilave edeceğiniz ayrı bir bash komut dosyası yaratmanız gerekiyor
Drupal 8 örneği
Drupal 8 modülü yapısı:
drush_example/ - drush_example.info.yml - drush_example.drush.inc
drush_example.info.yml:,
name: Drush Example command description: Drupal 8 custom drush command example type: module core: 8.x
drush_example.drush.inc
/** * Implements hook_drush_command(). */ function drush_example_drush_command() { $commands['my-example-command'] = [ 'description' => 'This is my example command.', 'aliases' => ['mec'], 'arguments' => [ 'arg1' => 'My custom argument 1.', 'arg2' => 'My custom argument 2.', ], 'options' => [ 'opt1' => 'My custom option.', ], 'examples' => [ 'drush mec' => 'Print my example command.', 'drush mec myargument' => 'Print my example command with an argument "myargument".', 'drush mec myargument --opt1=myoption' => 'Print my example command with an argument "myargument" and an option "myoption".', ], ]; return $commands; } /** * Drush command logic. * drush_[MODULE_NAME]_[COMMAND_NAME](). */ function drush_drush_example_my_example_command($arg1 = 'N/A', $arg2 = 'N/A') { $opt1 = drush_get_option('opt1', 'N/A'); $tokens = ['@arg1' => $arg1, '@opt1' => $opt1]; drush_print(dt('My custom command. Argument: @arg1 Option: @opt1', $tokens)); }
Drupal 7 örneği
D7 örnek modülü için aşağıdaki yapıyı kullanacağız:
drush_example/ - drush_example.info - drush_example.module (empty .module file) - drush_example.drush.inc
drush_example.info:
name = Drush Example command description = Drupal 7 custom drush command example core = 7.x
drush_example.drush.inc
/** * Implements hook_drush_command(). */ function drush_example_drush_command() { $commands['my-example-command'] = array( 'description' => 'This is my example command.', 'aliases' => array('mec'), 'arguments' => array( 'arg1' => 'My custom argument 1.', 'arg2' => 'My custom argument 2.', ), 'options' => array( 'opt1' => 'My custom option.', ), 'examples' => array( 'drush mec' => 'Print my example command.', 'drush mec myargument' => 'Print my example command with an argument "myargument".', 'drush mec myargument --opt1=myoption' => 'Print my example command with an argument "myargument" and an option "myoption".', ), ); return $commands; } /** * Drush command logic. * drush_[COMMAND_NAME](). */ function drush_my_example_command($arg1 = 'N/A', $arg2 = 'N/A') { $opt1 = drush_get_option('opt1', 'N/A'); $tokens = array('@arg1' => $arg1, '@opt1' => $opt1); drush_print(dt('My custom command. Argument: @arg1 Option: @opt1', $tokens)); }
Mutlu kodlamalar