heydon/blt-twig

在robo-twig的基础上扩展,增加了对blt的额外支持

安装次数: 7,434

依赖者: 0

建议者: 0

安全: 0

星星: 1

观察者: 1

分支: 0

开放问题: 0

类型:robo-tasks

dev-master 2018-06-26 06:01 UTC

This package is auto-updated.

Last update: 2024-09-17 15:28:53 UTC


README

Twig是一个非常强大的模板语言,而robo内置的replace命令则完全不适用。例如,为Drupal构建默认的settings.php文件,你需要从blt配置yaml文件中提取许多不同的变量,这非常具有挑战性。

$this->taskReplaceInFile('box/robo.txt')
 ->from(
 [
    '##dbname##',
    '##dbhost##'
 ])
 ->to(
 [
    $this->getConfigValue('drupal.db.database'),
    $this->getConfigValue('drupal.db.host')
 ])
 ->run();

与twig相比

$this->taskTwig($this)
     ->setTemplatesDirectory($this->getConfigValue('repo.root') . '/blt/Templates')
     ->applyTemplate('settings.php.twig', $this->getConfigValue('drupal.settings_file'))
     ->applyTemplate('sites.php.twig', $this->getConfigValue('docroot') . '/sites')
     ->run();

使用提供的模板。

$databases['default']['default'] = array (
  'database' => '{{ config.drupal.db.database }}',
  'username' => '{{ config.drupal.db.username }}',
  'password' => '{{ config.drupal.db.password }}',
  'prefix' => '',
  'host' => '{{ config.drupal.db.host }}',
  'port' => '{{ config.drupal.db.port }}',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);

在::twigTask()期间,任务和配置变量会自动暴露,因此你的模板在生成时可以完全访问每个配置变量。