You are here

class MinifyJsCommands in Minify JS 8.2

Same name and namespace in other branches
  1. 8 src/Commands/MinifyJsCommands.php \Drupal\minifyjs\Commands\MinifyJsCommands

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:

Hierarchy

  • class \Drupal\minifyjs\Commands\MinifyJsCommands extends \Drush\Commands\DrushCommands

Expanded class hierarchy of MinifyJsCommands

1 string reference to 'MinifyJsCommands'
drush.services.yml in ./drush.services.yml
drush.services.yml
1 service uses MinifyJsCommands
minifyjs.commands in ./drush.services.yml
Drupal\minifyjs\Commands\MinifyJsCommands

File

src/Commands/MinifyJsCommands.php, line 20

Namespace

Drupal\minifyjs\Commands
View source
class MinifyJsCommands extends DrushCommands {

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

  /**
   * The minifyjs service.
   *
   * @var \Drupal\minifyjs\MinifyJs
   */
  protected $minifyJs;

  /**
   * MinifyJsCommands constructor.
   *
   * @param \Drupal\minifyjs\MinifyJs $minifyJs
   *   The minifyjs service.
   * @param \Drupal\Core\Cache\CacheBackendInterface $cache
   *   The cache.default service.
   */
  public function __construct(MinifyJs $minifyJs, CacheBackendInterface $cache) {
    $this->minifyJs = $minifyJs;
    $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 = $this->minifyJs
      ->loadAllFiles();
    foreach ($files as $fid => $file) {
      $status = $this->minifyJs
        ->minifyFile($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 = $this->minifyJs
      ->loadAllFiles();
    foreach ($files as $fid => $file) {
      if (!empty($file->minified_uri)) {
        $status = $this->minifyJs
          ->minifyFile($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...');
    $this->minifyJs
      ->scan();
    $this
      ->output()
      ->writeln('Complete!');
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MinifyJsCommands::$cache protected property The cache.default service.
MinifyJsCommands::$minifyJs protected property The minifyjs service.
MinifyJsCommands::minifyJs public function All js files minification.
MinifyJsCommands::minifyJsSkip public function Minify all JS files that are not currently minified.
MinifyJsCommands::scanJs public function Drush command to find all JS files.
MinifyJsCommands::__construct public function MinifyJsCommands constructor.