digipolisgent/robo-digipolis-general
Composer 安装命令:
composer require digipolisgent/robo-digipolis-general
包简介
General Digipolis tasks for Robo Task Runner
README 文档
README
General Digipolis tasks for Robo Task Runner
Tasks in this package
DetermineProjectRoot
Determines the root folder of the project by looking for certain files in the
given folder. By default it looks for a properties.yml or a composer.json
file. Usually this task is ran before running an other task in the same command
so the config value can be passed to that task.
// Recursively search for a project root folder in the current directory with a // maximum depth of 2. $result = $this->taskDetermineProjectRoot(getcwd(), 2) // Do not search in the tests and vendor folders. ->exclude(['tests', 'vendor']) // A folder containing a composer.json is considered a project root. ->searchFiles(['composer.json']) ->run(); // The project root is stored in the digipolis.root.project config. $root = $this->getConfig()->get('digipolis.root.project');
DetermineWebRoot
Determines the web root folder of the project by looking for certain files in
the given folder. By default it looks for a index.php, index.html,
index.htm, home.php, home.html or a home.htm file. Usually this task is
ran before running an other task in the same command so the config value can be
passed to that task.
// Recursively search for a web root folder in the current directory with a // maximum depth of 2. $result = $this->taskDetermineWebRoot(getcwd(), 2) // Do not search in the tests and vendor folders. ->exclude(['tests', 'vendor']) // A folder containing an index.php is considered a project root. ->searchFiles(['index.php']) ->run(); // The project root is stored in the digipolis.root.web config. $root = $this->getConfig()->get('digipolis.root.web');
ReadProperties
Reads values from yaml files (default.properties.yml and properties.yml) and
stores them in config. Values from default.properties.yml will be overridden
if they exist in a properties.yml. If a valid path is set for
digipolis.root.web in config, and a properties.yml file exists in that path,
those values will have top priority. Property files (both
default.properties.yml and properties.yml) can define a _priority key at
the root of the yaml. Higher priorities (lower number) take precedence over
lower priorities (higher number).
// Search for default.properties.yml and properties.yml files in the current // directory. $result = $this->taskReadProperties([getcwd()]) ->run(); // Values are stored in config. $root = $this->getConfig()->get('my.config.value');
Using these tasks in a command
If you want to use these tasks in a command, you can use the
\DigipolisGent\Robo\Task\General\Common\DigipolisPropertiesAware trait and
implement the
\DigipolisGent\Robo\Task\General\Common\DigipolisPropertiesAwareInterface
interface. This will expose a readProperties method to which you can pass the
paths to the project root, the web root and the vendor folder. If the tasks to
determine the project and web root are available on the class using the trait,
and no project or web root are given as a parameter to the readProperties
method, these tasks will be used to determine the paths. They both default to
the current working directory. The vendor folder defaults to the vendor folder
in the web root. Your RoboFile.php might look something like this:
class RoboFile extends \Robo\Tasks implements \DigipolisGent\Robo\Task\General\Common\DigipolisPropertiesAwareInterface { use \DigipolisGent\Robo\Task\General\Common\DigipolisPropertiesAware; use \DigipolisGent\Robo\Task\General\loadTasks; public function myCommand( $arg1, $arg2, $opts = [ 'root|r' => null, 'webroot|wr' => null, 'vendor-folder|vf' => null, ] ) { $this->readProperties( $opts['root'], $opts['webroot'], $opts['vendor-folder'] ); // All properties are stored in config now, so execute the command. $this->doCommand(); } }
digipolisgent/robo-digipolis-general 适用场景与选型建议
digipolisgent/robo-digipolis-general 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 163.44k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 01 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 digipolisgent/robo-digipolis-general 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 digipolisgent/robo-digipolis-general 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 163.44k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 36
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-01-10