This repository has been archived on 2025-01-19. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
drupalcampbristol/vendor/consolidation/robo/src/TaskAccessor.php
2018-11-23 12:29:20 +00:00

47 lines
1 KiB
PHP

<?php
namespace Robo;
use Robo\Common\BuilderAwareTrait;
trait TaskAccessor
{
use BuilderAwareTrait;
/**
* Provides the collection builder with access to all of the
* protected 'task' methods available on this object.
*
* @param string $fn
* @param array $args
*
* @return null|\Robo\Collection\CollectionBuilder
*/
public function getBuiltTask($fn, $args)
{
if (preg_match('#^task[A-Z]#', $fn)) {
return call_user_func_array([$this, $fn], $args);
}
}
/**
* Alternative access to instantiate. Use:
*
* $this->task(Foo::class, $a, $b);
*
* instead of:
*
* $this->taskFoo($a, $b);
*
* The later form is preferred.
*
* @return \Robo\Collection\CollectionBuilder
*/
protected function task()
{
$args = func_get_args();
$name = array_shift($args);
$collectionBuilder = $this->collectionBuilder();
return $collectionBuilder->build($name, $args);
}
}