You are here

MinifyJsCommands.php in Minify JS 8

Same filename and directory in other branches
  1. 8.2 src/Commands/MinifyJsCommands.php

File

src/Commands/MinifyJsCommands.php
View source
<?php

namespace Drupal\minifyjs\Commands;

use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\minifyjs\Controller\FileManager;
use Drush\Commands\DrushCommands;

/**
 * A Drush commandfile.
 *
 * In addition to this file, you need a drush.services.yml
 * in root of your module, and a composer.json file that provides the name
 * of the services file to use.
 *
 * See these files for an example of injecting Drupal services:
 *   - http://cgit.drupalcode.org/devel/tree/src/Commands/DevelCommands.php
 *   - http://cgit.drupalcode.org/devel/tree/drush.services.yml
 */
class MinifyJsCommands extends DrushCommands {

  /**
   * Cache.
   *
   * @var \Drupal\Core\Cache\CacheBackendInterface
   */
  protected $cache;

  /**
   * MinifyJsCommands constructor.
   */
  public function __construct(CacheBackendInterface $cache) {
    $this->cache = $cache;
  }

  /**
   * All js files minification.
   *
   * @usage drush minify-js
   *   Js files minification.
   *
   * @command minify-js
   * @aliases minifyjs
   */
  public function minifyJs() {
    $this
      ->output()
      ->writeln('Minifying all JS files...');
    $files = minifyjs_load_all_files();
    foreach ($files as $fid => $file) {
      $status = minifyjs_minify_file($fid);

      // Only output error messages.
      if ($status !== TRUE) {
        $this
          ->output()
          ->writeln($status);
      }
    }
    $this->cache
      ->delete(MINIFYJS_CACHE_CID);
    $this
      ->output()
      ->writeln('Complete!');
  }

  /**
   * Minify all JS files that are not currently minified.
   *
   * @usage drush minify-js-skip
   *   Js files minification.
   *
   * @command minify-js-skip
   * @aliases minifyjslite
   */
  public function minifyJsSkip() {
    $this
      ->output()
      ->writeln('Minifying all JS files not currently minified...');
    $files = minifyjs_load_all_files();
    foreach ($files as $fid => $file) {
      if (!empty($file->minified_uri)) {
        $status = minifyjs_minify_file($fid);

        // Only output error messages.
        if ($status !== TRUE) {
          $this
            ->output()
            ->writeln($status);
        }
      }
    }
    $this->cache
      ->delete(MINIFYJS_CACHE_CID);
    $this
      ->output()
      ->writeln('Complete!');
  }

  /**
   * Drush command to find all JS files.
   *
   * @usage drush scan-js
   *   Drush command to find all JS files.
   *
   * @command scan-js
   * @aliases scanjs
   */
  public function scanJs() {
    $this
      ->output()
      ->writeln('Scanning for JS files...');
    FileManager::scan(TRUE);
    $this
      ->output()
      ->writeln('Complete!');
  }

}

Classes

Namesort descending Description
MinifyJsCommands A Drush commandfile.