Пример #1
0
 /**
  * 
  * Construct a new __FileSystemElement. This element has all the path management and is
  * always relative to the FileSystemUtils::getPiolRootPath().
  * @param string $path The string path.
  * @throws \Mbcraft\Piol\IOException If something goes wrong.
  * 
  * @internal
  */
 protected function __construct($path)
 {
     FileSystemUtils::checkPiolRootPath();
     $path = FileSystemUtils::getCleanedPath($path);
     if (strpos($path, FileSystemUtils::getPiolRootPath()) === 0) {
         throw new IOException("Errore : path contenente la root del sito.");
     }
     //rimuovo doppi slash e '..'
     $fp = FileSystemUtils::getPiolRootPath() . $path;
     //DISABILITATO, IL LINK DEL FRAMEWORK CREA GROSSI PROBLEMI
     //non posso determinare il path se esco dal FileSystemUtils::getPiolRootPath() (è ovvio)
     //la chiamata a realpath potrebbe far cambiare sia la seconda parte dell'url che la prima parte
     //IN QUESTO MODO CREO UNA JAIL ALL'INTERNO DEL SITO.
     /*
                   if (file_exists($fp))
                   {
                   $fp = realpath ($fp);
                   if (strpos($path,FileSystemUtils::getPiolRootPath())!==0)
                   $fp = FileSystemUtils::getPiolRootPath();
                   }
     */
     $this->__full_path = $fp;
     $this->__full_path = str_replace(DIRECTORY_SEPARATOR, DS, $this->__full_path);
     $this->__path = substr($fp, strlen(FileSystemUtils::getPiolRootPath()), strlen($fp) - strlen(FileSystemUtils::getPiolRootPath()));
     $this->__path = str_replace(DIRECTORY_SEPARATOR, DS, $this->__path);
 }