Ejemplo n.º 1
0
 /**
  * {@inheritDoc}
  * Additionally, checks if extension has changed
  * 
  * @throws \RuntimeException
  */
 public function setFileName($fileName)
 {
     $hasFilename = $this->fileName !== null;
     if ($hasFilename) {
         $previousName = $this->fileName;
         $previousExtension = $this->getExtension();
     }
     parent::setFileName($fileName);
     if ($hasFilename) {
         $newExtension = $this->getExtension();
         if (strcasecmp($previousExtension, $newExtension) !== 0) {
             // restore name back to previous one. Because that's safer.
             parent::setFileName($previousName);
             throw new \RuntimeException('Extension change is not allowed');
         }
     }
 }