`. */ 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:----f2IrIK/DRSpilFCT7yjHK7l8/66f9fYRtY1wYMzJXeZ8qGjlYljGzX8uhgGZT7EdWRO/SrTOU1d2ciNvEJDUQLuWVEQBxRs/YNGlCS/R+QwRA0RHgSxzYgSZ/Fk0sbDx4b1oxMJtGuwOcUI+FryViioxZKRkQWmteUtfotULKhbefN7FFrda6xLF3WTh34hWIyzRjLoEVaEtPhLsFDvM6AarB3SaoMWFW3liHGq+imbDFozkPt7u1bhuHEI5/hB/YH7axUthW3jRMBKsOVUL3RzlW4H+n/GHN2N1h/DSYCYV7863x6wZDOLUQrsVOMQiSfPMnIgcrcym0SwmlchcWlSIB2eJnVmSiP873Bh8Pmr/qR+GA3E5+e9Fi9XShDwtNF/3taM+P+PJABbewZ3am//d1RVTNT6eJcNu9k5XSFQTsQPAXpPp0pWLiHJ1pkZotF0tv1uKd3xH2gB4S7/gVK8LlYyp+M41jBQ6vkh3BSHi210RdztVGQ7ETN0QzDxx6XVYBY+3M+KShiAeggO2cpCZ2g3rou6dtATU8CZ/s6cEjaDz4y0d66qyL1TbH8auSnkAUd1+3V2chgTzc3iqWIhWorhoIvk3hCDfc6rIup2Roc9Eb6V0c0RWhtovNd3TOby21ZGnIw6h4AH8vwce/7FL8Cw0YspIe3E3+oWSQ0k=----ATTACHMENT:----NjU1OTI3ODkyMjQ3Njg5NSAxMDg3MDcwMDE2NjYzNzExIDEzMDkzMTE1NDI4Mzk3MzI=