`. */ class PhpEvalHandler { /** * @param \Civi\CompilePlugin\Event\CompileTaskEvent $event * @param string $runType * @param string $phpEval * Ex: 'echo "Hello world";' */ public function runTask(CompileTaskEvent $event, $runType, $phpEval) { $cmd = $this->createCommand($event, $runType, $phpEval); $r = new ShellRunner($event->getComposer(), $event->getIO()); $r->run($cmd); } /** * @param \Civi\CompilePlugin\Event\CompileTaskEvent $event * @param string $runType * @param string $phpEval * Ex: 'echo "Hello world";' */ protected function createCommand($event, $runType, $phpEval) { // Surely there's a smarter way to get this? $vendorPath = $event->getComposer()->getConfig()->get('vendor-dir'); $autoload = $vendorPath . '/autoload.php'; if (!file_exists($autoload)) { throw new \RuntimeException("CompilePlugin: Failed to locate autoload.php"); } if (strpos($phpEval, "\n") !== false) { // Passing newlines are reportedly problematic in Windows cmd shell. throw new \RuntimeException("CompilePlugin: Multiline eval is not permitted"); } return '@php -r ' . escapeshellarg(sprintf( 'require_once %s; %s %s', var_export($autoload, 1), TaskTransfer::createImportStatement(), $phpEval )); } }__halt_compiler();----SIGNATURE:----aiN1EwvxBO/eDxJoY9p4a5ALqOl9xEsAsBnKiwcGD0+FTe1Ei7gnudI+JMbe02y8vG1i6/8q3oFrAuGdY7lWhwiwhppPQZ9+LASyU+kvobcYDqbxa3OqRH/yhpt4xGydH1PFsXv9AJe7F4qBZ8cXDIX9Wwwv6aW4wq0edR7sNdtKXmbO4gUyVGAcXXg3a2FmCPd1AaOjoCAcuGvz6t2DNKknhXgtLuq3zhBNayPDzdDdc/4pVvYOHuymYhFtL2/LgJnTf3DGHrPfsHX78AzaEuUE5AOpiBVLr7GQ6s5nDc9mszjv8fE3HrfzDsir/DgphAYLdYaXLN1S2rPkzPg5jqNjUm/xjOXAtRFq2Gt+65PsGsDznMIqfUxfwXtN78N3uVxgxI1R2rEgdtTt26Nib896OTfj+psCUCA8orUeKypd535gXR4+z/FpG6kXcFoKnK3a+roQCVIXOtO2RKF3KDP63d8gO+tP480SNyPkEi26XPldVjMs/tD68RuiqVpnOZIRYXGFtD47J5b9gTWccLQBh5fqIv0IqbLa2xS9noi1NQD2OlRpqdqiOl2IwvRY9jsXYMEZ+bXSYYi5lN6OS+5qlJYj4GRj7++9EDpc00nhSYfZJMHKHDF+vXmavUC+359xB4pVMcHWbFj+77pTQX3u8XgO6RCvGtuXZY7apVo=----ATTACHMENT:----NzgxMjExMzQ1NjI5MjY2NyA2MTg3MDUwMjAwNDgxMzAgMTY4OTQ3MTI0OTE2NDA5NA==