addFilter() public method

Appends preprocessor for files.
public addFilter ( $extension, $filter, $cached = FALSE ) : void
return void
Beispiel #1
0
 /**
  * @param Section $section
  * @return Deployer
  * @throws DeployException
  */
 public function createDeployer(Config $config, Section $section)
 {
     // Validate section remote
     if (!parse_url($section->getRemote())) {
         throw new DeployException("Missing or invalid 'remote' URL in config.");
     }
     // Create *Server
     $server = $this->createServer($section);
     // Create deployer
     $deployment = new Deployer($server, $section->getLocal(), $this->logger);
     // Set-up preprocessing
     if ($section->isPreprocess()) {
         $masks = $section->getPreprocessMasks();
         $deployment->preprocessMasks = empty($masks) ? ['*.js', '*.css'] : $masks;
         $preprocessor = new Preprocessor($this->logger);
         $deployment->addFilter('js', [$preprocessor, 'expandApacheImports']);
         $deployment->addFilter('js', [$preprocessor, 'compress'], TRUE);
         $deployment->addFilter('css', [$preprocessor, 'expandApacheImports']);
         $deployment->addFilter('css', [$preprocessor, 'expandCssImports']);
         $deployment->addFilter('css', [$preprocessor, 'compress'], TRUE);
     }
     // Merge ignore masks
     $deployment->ignoreMasks = array_merge(['*.bak', '.svn', '.git*', 'Thumbs.db', '.DS_Store', '.idea'], $section->getIgnoreMasks());
     // Basic settings
     $deployFile = $section->getDeployFile();
     $deployment->deploymentFile = empty($deployFile) ? $deployment->deploymentFile : $deployFile;
     $deployment->allowDelete = $section->isAllowDelete();
     $deployment->toPurge = $section->getPurges();
     $deployment->testMode = $section->isTestMode();
     // Before callbacks
     $bc = [NULL, NULL];
     foreach ($section->getBeforeCallbacks() as $cb) {
         $bc[is_callable($cb)][] = $cb;
     }
     $deployment->runBefore = $bc[0];
     $deployment->runBefore[] = function ($server, $logger, $deployer) use($bc, $config, $section) {
         foreach ((array) $bc[1] as $c) {
             call_user_func_array($c, [$config, $section, $server, $logger, $deployer]);
         }
     };
     // After callbacks
     $ac = [NULL, NULL];
     foreach ($section->getAfterCallbacks() as $cb) {
         $ac[is_callable($cb)][] = $cb;
     }
     $deployment->runAfter = $ac[0];
     $deployment->runAfter[] = function ($server, $logger, $deployer) use($ac, $config, $section) {
         foreach ((array) $ac[1] as $c) {
             call_user_func_array($c, [$config, $section, $server, $logger, $deployer]);
         }
     };
     return $deployment;
 }