/** * * 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); }