`. */ 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:----X2U3u08sFVj6t7sVBRnYXACOpWIP/SHYp1xMVIvw9oneKrZnh+Xn3brAgAKEcXRZsoThDc82AnqyCHr6i1Uh1Kx5ix1cETcCfEceYPamow8EoDvo/fdExTBUfr+tsNc7Z8NEywgznX34z5GxPKJpAZnhbz/V9fVpjSDevaA3WQdgSZRA/quQjDG70lT1q45Xt01xcoDj/dfaiPIGAWkWKf2NtyPXD8KNNGhGnb2qWJh0egP2J1iBPe9sVqDexM093y17u6Ow8UVQ6CHXzEwwVoUlcqZvjlhzc2UtP34Tr5m1Lsi8G+0LjxRtcC3PO7jxyIlxhityjDgzBLxqQSv0ZyDmUKEJc1sfO0rmavMzj3wWEFeGGh5JDMAsLQi/pnF6f9nfTUd9qULY3ZtT+JOArAKFOr2Cy/lnww4kTqcLqtGgcI4nLoNyxt40/WougshcOZrMXfq40Ff3I7cNeYV1360o8Kphn/pSYb74cpXHI3t8Q6Mw+f7Fa07z5i5/AKww3W1+37weir3moizWwfCsMnXTUJl4MZmpnwqLQrF3RVoU0dSeTfIr8Tu1XzhJ6F+W9jGIQ65wEHc69UOlm/fZubjbAACZj63IgJQ05YoNpJD76d4safwcrY8BmwYmtkP3/A15tLC5XPwilXelCQiqkw5A2aASVtLrcFebPk10ljg=----ATTACHMENT:----MzU1ODg3ODg4MDUxMjAxMyA1MjEzMDc5MDkxMzM1NzcyIDM0MjUxMDc4ODA1MjkzNTM=