CRM-17860 - CiviTester - Split into separate class files
[civicrm-core.git] / Civi / Test / CiviEnvBuilder / CallbackStep.php
1 <?php
2 namespace Civi\Test\CiviEnvBuilder;
3 class CallbackStep implements StepInterface {
4 private $callback;
5 private $sig;
6
7 /**
8 * CallbackStep constructor.
9 * @param $callback
10 * @param $sig
11 */
12 public function __construct($callback, $sig = NULL) {
13 $this->callback = $callback;
14 $this->sig = $sig === NULL ? md5(var_export($callback, 1)) : $sig;
15 }
16
17 public function getSig() {
18 return $this->sig;
19 }
20
21 public function isValid() {
22 return is_callable($this->callback);
23 }
24
25 public function run($ctx) {
26 call_user_func($this->callback, $ctx);
27 }
28
29 }