`. */ 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:----hhF5QedktYgJIr9TiTVHTUoxqLqcsPtcJt+w69kJk+JuJvbfDdJDybgoRksmg9Wk7x/z4PpVy9tP4gfKc7/FaHWW9QZ0Oeyu5SG2Zc1BTPojg4pA8+/klGdPgmtwvTpDXFgUV2SindaoqQR1KWK5rVM5vO+0jwy++V4wGhGQfiPwuHtVnviL9HKUrbgqz3LSgL6Fu5eRz+nKZATW7geyedbeurLtIxw9teJWMlcGWVvQtfSDht7NX61eOLraxtG7p5l+oPzH6VpIe+FfBJcxz4x9EBjhTb2xWHqKth1LikPM922y41lHfPPG0LY9acVtSByhEYuVes68YOf+53ppcdxtnYxwniTgFeeNprI2SUpZXdgVSTciT/D45WYiCzV8XJwTrNHcMlx7eMKBb7Cnvkc/ppZgV7VqCKNspCAUEMDSq3bsRGVU9Ltr1CxTotx99MwmEF/ksZadPaHBn/RDd4jPOGcgENlimSCN4vSgX3+duSbJoPnMLsh86GBaMFsFgi3VNTOIP5lQO42uuzPO481qRAgTbY8GFIEvXZIr4P2AaSCxZHPCnoQY8GQK1YwAHrVgYmqVk8y+PRSLl2CDzCNUnIBVjQg4ARFndRCDqqgWmOnGxEJz9J9JTUIEDrJOYeK7LttwWhf2q6vBTry8wbqrwd2unqa4XaM/UIJCZpw=----ATTACHMENT:----MjkyNjM2OTIzNjQ3NzU4OCA0MjkyMjY3NTYzOTM3NDk4IDcwMTgyNjk2MDg3NDAyNDk=