承接 nuvoleweb/robo-config 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nuvoleweb/robo-config

最新稳定版本:3.1.0

Composer 安装命令:

composer require nuvoleweb/robo-config

包简介

CI/developer-friendly configuration processor for Robo.

README 文档

README

Latest Stable Version Total Downloads Latest Unstable Version License

Robo Config enables a flexible configuration processing for Robo by providing the following features:

  • Define your default configuration in robo.yml.dist and let developers override that locally in their robo.yml.
  • Allow configuration files to use properties defined within the same configuration in a Phing-like fashion.
  • Allow all properties to be overridden on the command line so that they can be tweaked when running continuous integration builds.
  • Access any configuration parameter via $this->config('my.configuration.property);`

Installation

Install with Composer by running:

$ composer require nuvoleweb/robo-config

Usage

After installation add the following trait to your RoboFile.php:

<?php
class RoboFile extends Robo\Tasks {
  
  use NuvoleWeb\Robo\Task\Config\loadTasks;

}

For example, consider having the following robo.yml.dist file:

site:
  name: "Default site name"
  email: "me@example.com"
  url: "http://localhost"
account:
  name: "admin"
  password: !account.name
  email: !site.email

And the following robo.yml file:

site:
  name: "My site name"

When running:

./vendor/bin/robo my-command -o "site.url: http://127.0.0.1:8888"

The resulting configuration will be:

site:
  name: "My site name"
  email: "me@example.com"
  url: "http://127.0.0.1:8888"
account:
  name: "admin"
  password: "admin"
  email: "me@example.com"

Robo configuration in PHP files

Robo Config exposes three tasks that allow to convert a YAML configuration subset into PHP array. Such array will be then appended, prepended or written down to a PHP destination file as an array.

This might be useful for applications that have part of their configuration expressed in a PHP file, like Drupal or Silex.

For example, the following YAML portion:

settings:
  config:
    system.logging:
      error_level: verbose
  settings:
    scan_tests: TRUE

Will be converted into:

// Start settings processor block.

$config["system.logging"] = array('error_level' => 'verbose');

$settings["scan_tests"] = true;

// End settings processor block.

And added to a PHP file.

Append task

Given an existing /my/config.php file, by calling:

<?php
class RoboFile {

  public function appendTask() {
    $this->taskAppendConfiguration('/my/config.php')->run();  
  }

}    

We will get the following result:

<?php

// Content of /my/config.php here...

// Start settings processor block.

$config["system.logging"] = array('error_level' => 'verbose');

$settings["scan_tests"] = true;

// End settings processor block.

Prepend task

Given an existing /my/config.php file, by calling:

<?php
class RoboFile {

  public function appendTask() {
    $this->taskPrependConfiguration('/my/config.php')->run();  
  }

}    

We will get the following result:

<?php

// Start settings processor block.

$config["system.logging"] = array('error_level' => 'verbose');

$settings["scan_tests"] = true;

// End settings processor block.

// Content of /my/config.php here...

Write task

Given a non-existing /my/config.php file, by calling:

<?php
class RoboFile {

  public function appendTask() {
    $this->taskWriteConfiguration('/my/config.php')->run();  
  }

}    

We will get the following result:

<?php

// Start settings processor block.

$config["system.logging"] = array('error_level' => 'verbose');

$settings["scan_tests"] = true;

// End settings processor block.

Configure tasks

The behaviors of all tasks above can be customized as follow:

<?php
class RoboFile {

  public function myTask() {
    $config = $this->getMyConfiguration();
    
    $this->taskAppendConfiguration('/my/config.php', $config) // Use custom configuration.
    ->setBlockStart('// Start')                               // Change opening comment.
    ->setBlockEnd('// End')                                   // Change closing comment.
    ->setConfigKey('parameters')                              // Use `parameters:` instead of default `settings:`
    ->run();
  }

}    

Standalone usage

If you just want to use the PHP configuration file processing tasks above in your custom Robo application you can load them by including the following trait:

<?php

class RoboFile {
  
  use \NuvoleWeb\Robo\Task\Config\Php\loadTasks;
  
}

统计信息

  • 总下载量: 231.68k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 1
  • 依赖项目数: 58
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2017-05-02