sweetchuck / robo-serialize
Export variables in various format
Installs: 52
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 2
Type:robo-tasks
Requires
- php: >=7.1
- consolidation/robo: ^1.0
- samsonasik/package-versions: ^1.1
- symfony/yaml: ^2.8 || ^3.1
Requires (Dev)
- codeception/codeception: ^2.2
- sweetchuck/codeception-module-robo-task-runner: ^0.0.1
- sweetchuck/git-hooks: ^0.0
- sweetchuck/robo-git: ^0.0
- sweetchuck/robo-phpcs: ^0.0
- webmozart/path-util: ^2.3
README
Install
Run composer require sweetchuck/robo-serialize
Usage example
<?php declare(strict_types = 1); use Robo\Contract\TaskInterface; use Robo\State\Data as RoboStateData; use Robo\Tasks; use Sweetchuck\Robo\Serialize\SerializeTaskLoader; use Symfony\Component\Console\Output\StreamOutput; class RoboFileExample extends Tasks { use SerializeTaskLoader; /** * @command serialize:example:1 */ public function serializeExample1(): TaskInterface { // The file name can be my_config.json as well. $dstFileName = 'php://stdout'; $serializer = $this->getSerializer('json'); $writer = new StreamOutput(fopen($dstFileName, 'w+')); return $this ->collectionBuilder() ->addCode(function (RoboStateData $data): int { $data['my_config.json'] = [ 'description' => 'this is the initial value of the my_config.json', ]; return 0; }) ->addCode($this->getTaskIndependentConfigManipulator1('my_config.json')) ->addCode($this->getTaskIndependentConfigManipulator2('my_config.json')) ->addTask($this ->taskSerialize() ->setSerializer($serializer) ->setWriter($writer) ->deferTaskConfiguration('setValue', 'my_config.json') ); } protected function getTaskIndependentConfigManipulator1(string $stateKey): \Closure { return function (RoboStateData $data) use ($stateKey): int { $data[$stateKey]['manipulator_1'] = 'foo'; return 0; }; } protected function getTaskIndependentConfigManipulator2(string $stateKey): \Closure { return function (RoboStateData $data) use ($stateKey): int { $data[$stateKey]['manipulator_2'] = 'bar'; return 0; }; } }