original_string: public static function options()
      {
          if (self::$options === null) {
              self::$options = [
                  self::WHITESPACES        => new Option(self::WHITESPACES, 'Remove redundant whitespaces', true),
                  self::COMMENTS           => new Option(self::COMMENTS, 'Remove comments', true),
                  self::BOOLEAN_ATTRIBUTES => new Option(self::BOOLEAN_ATTRIBUTES, 'Collapse boolean attributes from checked="checked" to checked', true),
                  self::ATTRIBUTE_QUOTES   => new Option(self::ATTRIBUTE_QUOTES, 'Remove quotes around html attributes', false),
                  self::OPTIONAL_ELEMENTS  => new Option(self::OPTIONAL_ELEMENTS, 'Remove optional elements which can be implied by the browser', false),
                  self::REMOVE_DEFAULTS    => new Option(self::REMOVE_DEFAULTS, 'Remove defaults such as from <script type=text/javascript>', false),
                  self::EMPTY_ATTRIBUTES   => new Option(self::EMPTY_ATTRIBUTES, 'Remove empty attributes. HTML boolean attributes are skipped', false),
              ];
          }
  
          return self::$options;
      }
code: public static function options()
      {
          if (self::$options === null) {
              self::$options = [
                  self::WHITESPACES        => new Option(self::WHITESPACES, 'Remove redundant whitespaces', true),
                  self::COMMENTS           => new Option(self::COMMENTS, 'Remove comments', true),
                  self::BOOLEAN_ATTRIBUTES => new Option(self::BOOLEAN_ATTRIBUTES, 'Collapse boolean attributes from checked="checked" to checked', true),
                  self::ATTRIBUTE_QUOTES   => new Option(self::ATTRIBUTE_QUOTES, 'Remove quotes around html attributes', false),
                  self::OPTIONAL_ELEMENTS  => new Option(self::OPTIONAL_ELEMENTS, 'Remove optional elements which can be implied by the browser', false),
                  self::REMOVE_DEFAULTS    => new Option(self::REMOVE_DEFAULTS, 'Remove defaults such as from <script type=text/javascript>', false),
                  self::EMPTY_ATTRIBUTES   => new Option(self::EMPTY_ATTRIBUTES, 'Remove empty attributes. HTML boolean attributes are skipped', false),
              ];
          }
  
          return self::$options;
      }
code_tokens: public static function options ( ) { if ( self :: $ options === null ) { self :: $ options = [ self :: WHITESPACES => new Option ( self :: WHITESPACES , 'Remove redundant whitespaces' , true ) , self :: COMMENTS => new Option ( self :: COMMENTS , 'Remove comments' , true ) , self :: BOOLEAN_ATTRIBUTES => new Option ( self :: BOOLEAN_ATTRIBUTES , 'Collapse boolean attributes from checked="checked" to checked' , true ) , self :: ATTRIBUTE_QUOTES => new Option ( self :: ATTRIBUTE_QUOTES , 'Remove quotes around html attributes' , false ) , self :: OPTIONAL_ELEMENTS => new Option ( self :: OPTIONAL_ELEMENTS , 'Remove optional elements which can be implied by the browser' , false ) , self :: REMOVE_DEFAULTS => new Option ( self :: REMOVE_DEFAULTS , 'Remove defaults such as from <script type=text/javascript>' , false ) , self :: EMPTY_ATTRIBUTES => new Option ( self :: EMPTY_ATTRIBUTES , 'Remove empty attributes. HTML boolean attributes are skipped' , false ) , ] ; } return self :: $ options ; }
docstring: Get all the options available for this minifier.
  
  @return array
docstring_tokens: Get all the options available for this minifier .