`. */ 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:----fBcSUTxNn1yjFJB6ZqFVm/J+SDSeTJYMkgRKSxINnQS7Ff1mrl5YX53zE6UVk8btYcGRSwYUfWYtkX4lWuF7EHear5OWlC6NNa+opZ27N08sjfupHbt/pFRb3jMF6WQRwiXwv63RbPRL4O7Lfb3hQpWXoVo/HvHh4fbtXvHKCkZNEO4MlqpV8ju6GffrD5sdKPcrVfhobKz90mK4bji3V60BHdR/QGYn4CzmHNlX82Kx9WMXBXY9YbEaJ7GX0PlyXJCKbpo1imqGjSLc/okkxx9d5wX2oswn7O7U/ACnb5fgEvnl4tOdY7FJkfvZmqeavwDxaCDb3aB4ybd6l8t8rhaBTITacjfkgcRlgIvH3B2RZGzC6r8cBqMXN/i/ihMUy54TqUj93T4dMEt8aduDBSvfHEbUOng0GtiMX9neaRiPaWZaX4//SdNLwkWWNR8w4mzKlbNjhWD3dt+TNTzdE9SqLJkyCwsRs1dJawN+tEKpAv7foqBl7nUb1qeKKeh9twbegteHX1y/zFcXVhZDjEhBRdniGM/I7yRSTj9WqYaZwHclgn3YQh9h7v276mtnqA6ag8K7F9w198s6pQiOElQgpf/bo4BW+4l9AWIu+IKIYQcR6C3sREjWN7BQQRJj6XopjTB3ZM8eNxWXZmeX0cse/xjQkFkI0jLgd5IgFqc=----ATTACHMENT:----NjI1MTIxMjU5MDk0OTQwOCAyMzQxNzU2OTQ5Njg4ODY5IDU3ODA0MjU0OTcxNDUxMzg=