Classi per la configurazione upload
Cristiano Magro
2018-01-16 0c8da1b9e4a2def6d36c0c83c3dde6d019398280
Refactor decodifico il path dalla mappa e dalla request
2 files modified
57 ■■■■ changed files
src/Vola/UploadFile/FileUp.php 55 ●●●● patch | view | raw | blame | history
tests/Vola/UploadFile/FileUpTest.php 2 ●●● patch | view | raw | blame | history
src/Vola/UploadFile/FileUp.php
@@ -34,22 +34,41 @@
    }
    /**
     * Imposto i path di destinazione del file
     * @param string $cfgClassName nome della classe con i parametri di configurazione da utilizzare
     * @return \Upload_FileUp
     * Imposto i path di destinazione del file.
     *
     * Ricavo dalla mappa il path su cui memorizzare il file corrente, sulla base del parametro
     * passato nella Request. Se non trovo corrispondenza viene lanciata eccezione.
     * @param array $cfgPathMap elenco percorsi validi per la memorizzazione.
     * @return \Upload_FileUp fluent style
     * @throws Upload_Exc_Error
     */
    public function setUploadPath(array $cfgPathKey)
    public function decodeUploadPath(array $cfgPathMap)
    {
        $this->pathMap = $cfgPathMap;
        $key = $this->getRequestValue('dirDestinazione', null);
        $key = $this->request->dirDestinazione;
        if (isset($cfgPathKey[$key])) {
            $path = $cfgPathKey[$key];
            $this->request->pathForUpload = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT') . '/../' . $path;
        } else {
            throw new Upload_Exc_Error('Decodifica chiave percorso non definita');
        }
        $path = $this->getMapValue($key);
        $pathDocumentRoot = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
        //genero il percorso reale dove andrà salvato il file
        $this->request->pathForUpload =  $pathDocumentRoot. '/../' . $path;
        return $this;
    }
    /**
     * Ritorno il valore della Request preso dalla chiamata.
     *
     * Se non è definito ritorno il valore di default|null
     * @param string $nomeParam
     * @param string $default
     * @return mixed null|valore chiamata
     */
    public function getRequestValue($nomeParam, $default = null)
    {
        if (isset($this->request->{$nomeParam})) {
            return $this->request->{$nomeParam};
        }
        return $default;
    }
    /**
@@ -116,5 +135,19 @@
        }
    }
    /**
     * Decodifico mediante la mappa il percorso da utilizzare.
     * @param $chiave della Request per il percorso
     * @return mixed  path associato
     * @throws Upload_Exc_Error
     * @since 0.3.2
     */
    protected function getMapValue($chiave)
    {
        if (!isset($cfgPathMap[$chiave])) {
            throw new Upload_Exc_Error('Decodifica chiave percorso non definita');
        }
        return $cfgPathMap[$chiave];
    }
}
tests/Vola/UploadFile/FileUpTest.php
@@ -40,7 +40,7 @@
     * @expectedException  Upload_Exc_Error
     */
    public function testExcepitonNessunaMappaPerDecodifica(){
        $this->object->setUploadPath(array());
        $this->object->decodeUploadPath(array());
    }
}