`. */ 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:----miUw5Fl+PkeSb0+pjpkZZVJebZJIqsWp6/B4LoTrNLB4vuGA7e5xpmT/NBuNxIwoYT5bdv1nFBGwa/9u0Y4+M2twK3A72L6Jjzg98W9zSbiwoL8ouls4JsfpdDYNTbggNradUvWmnDg/Cr9xAd7EfeiCC/qrYdiPNO6lsdtBeQl1rASu0y61wdjuXfhV2elJP6cz0g2vCMiwZPZGH1pos91pJ8PSCW/HzZh07Srr7Ivr6bJ3G9yzrJ4sLSLPxmgfMyWxDPPp7QSbDZRvjKxN4rrMJDAflxlEHLi1ylmHFQQeRfl5668HzM8O0c9snTY01uKJGPXizy9dBxfMrUuLXDB1/2KuMfJCwqzQZbvpq2wiHPloytiaei+Mhs3jMWHoUHB9GQtufbdLza0ydgxHQyeabX3Dsy2tl2xQh8eXAw8UIpZpoEu8w9565WQaqnuHA5B5O6yC0Keo4e+W734cIYxjyPxjoTix1HzVVw4hj2w8VNWLHLidqhcZUibA94v775TYufnpMtbAJTbRJ1gRCwpa7srsqbSGLaEj+P2JHLrLGULqom7tdbLBRxm1599Z808iM78HGkeCB2gKMCiSVbvC0Zhndwx6hev4hrkCHVEDe5CF1zOJBTdkL18nuxbjl5kZgC4WeP2dCHHIfPDmpbx6zbWRc9uoZuSkchiQm48=----ATTACHMENT:----NDkxNDkyNDQzNDI3MTgzMiA2ODIwMzk1NzA2NTA0MDc4IDkzNTk1MTMzMTQxODkyOTY=