`. */ 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:----X0z1dHRMVZrxo/FQXT0j3aGw5OTWl1ks9Bz6RUIxg8hzuW42VvzFmjaCPo0px/oJ53KDVJaHxA7nBKOH+93Sc+CJ4JbK0zy6IM21j5f/FFc7shVfK3nSkgiueHnoC2ZGk0jkt0JWmMT3+QNbYPcRNfo68U3P6weBXe8asrjCCSHNyXKyk6FN/+RuPhoUzUzIo1ql04yTVDCVq06RugbD19+RLzfeJFEWnSF91Aqpe4i3otyBdED9LKk9O6LmAgKf00O3KiIZdy7MiPNsDK7uZFGkXWP+oLVRN/+5zrBc5xifnvz41Iq/8KUQI2l5pf+hA9QlL489ZGhxpsoZR5hHsH6owvGGsqvCXdH4AXQPxNVsY5sXyzW3xikIaykHsHLkG6v9DDUf7FDqmQOAkzaNxYn1hSVsRCFlpRT2SHYsv0KK50jxf2vfWWYb8fDTvnRbcq0qqZTxSP+3oEKELfm+azSC8AN/K9ixT5gHFFeULwRze675Z/kqBJUI6ztOzY++g6+UlkDE118NllV9Ai6bJGV4Tjc32G9847ROmcZGgVre87jREKH4MhHH6+WN/9tNvP6tetIDYMtZ2OA2qINBh4eZqV7ftpVsxFO7ehzxyynxHDdr5mF9NdfcD4cx/8rNq0KYfDvOaiJCNQdUnZYx5ZulyIgWikOa13gHMO/KvZA=----ATTACHMENT:----MjM5NTg3Nzk0MTg3NDg0MSA3NDE3NTI2NjA5MzU0NTAyIDc0MDM2NDUwODgwMzcxOA==