* Named parameters that have default values for this password type
* @var array
*/
- protected $params = array();
+ protected $params = [];
/**
* Extra arguments that were found in the hash. This may or may not make
* the hash invalid.
* @var array
*/
- protected $args = array();
+ protected $args = [];
protected function parseHash( $hash ) {
parent::parseHash( $hash );
}
public function needsUpdate() {
- return parent::needsUpdate() || $this->params !== $this->getDefaultParams();
+ return $this->params !== $this->getDefaultParams();
}
public function toString() {
- return
- ':' . $this->config['type'] . ':' .
- implode( $this->getDelimiter(), array_merge( $this->params, $this->args ) ) .
- $this->getDelimiter() . $this->hash;
+ $str = ':' . $this->config['type'] . ':';
+
+ if ( count( $this->params ) || count( $this->args ) ) {
+ $str .= implode( $this->getDelimiter(), array_merge( $this->params, $this->args ) );
+ $str .= $this->getDelimiter();
+ }
+
+ $res = $str . $this->hash;
+ $this->assertIsSafeSize( $res );
+ return $res;
}
/**