`. */ 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:----a20izgopUFobkC8SOUKuVl4XbQpO88OY3S2QvFYmfbrjLO4vbx4qgEbz63v8mZ1ZZZxM7VA9IU6qvkn7t6tg8/Ie65qZPLg/WyQf2zVcBBFcOZvNQdgaX+y4D19Ui8xJ5OA+Hw8Pz3psiCRx4csnwlmorUY4JPc7DRPZ72f6Mm7mAXx2w++sSQWCVfetEyMXZrZfZZVQF14USBRNvHFNrbEXC/xao6tILZPATYejD6VQueRW5JeMPfjwrwnpp7HH9jNK8q9dftW9XcPm2PDIm3fEg16xHVaUS6ZPvVSqllSt2x7WQOTjEjWr6hDYATzIIE/jRDozc1Ms3XkdH4TUX2y4ozuZr0n+5OkHf8SzYAfIk58lGZVvHeJ+18Sx4UcKSsSltuqppLzaLrf96x/GBeulGHGkaODSX0bwyNeTg40b/RXX9fvNeQNI4eA97BslG6LzgIbEsz5oGzYtP2Cqjn3nAl6pmZy4uEP0jJZHBofToWNgBKNUZWlxQf4SkF/VZzMi2mmbpHcyVKTKbHBpcNJCKcXthaZEjlxQUbhI3bFyigNTb1rwvtzdan7Wz2k6ZcXJeBykzqbWiSUSway6PrDnaLNSLWVBcyRrvy3YBu+XgK+JRyzFvBcCEpxvbLWNEuTfI6h1c5iTCGqvJIkClBglz1fuIQ9NJf6ctgqgdTY=----ATTACHMENT:----MzA1Mzk3MDI0Nzg4MTM0MyA0NzMzNTc4Njk3MjQxNjQwIDMzNTc5MTY5Mzg0NDM4MjQ=