heydon / blt-twig
在robo-twig的基础上扩展,增加了对blt的额外支持
dev-master
2018-06-26 06:01 UTC
Requires
- acquia/blt: ^9.0
- heydon/robo-twig: dev-master
- jasny/twig-extensions: ^1.2
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()期间,任务和配置变量会自动暴露,因此你的模板在生成时可以完全访问每个配置变量。