src/fwidm/dwdHourlyCrawler/hourly/DWDHourlyCrawler.php
public function retrieveFile(AbstractHourlyService $service, DWDStation $nearestStation, $forceDownloadFile = false)
    {
        $config = DWDConfiguration::getConfiguration();
        $ftpConfig = $config->ftp;


        $fileName = $service->getFileName($nearestStation->getId());
        $ftpPath = $service->getFileFTPPath($nearestStation->getId());
        $localPath = $service->getFilePath($fileName);
        DWDUtil::log(self::class, '$fileName=' . $fileName);
        DWDUtil::log(self::class, '$ftpPath=' . $ftpPath);
        DWDUtil::log(self::class, '$localPath=' . $localPath);

        //get file.
        $ftp_connection = ftp_connect($ftpConfig->url);
        //ftp_set_option($ftp_connection, FTP_TIMEOUT_SEC, 9000);
        $files = array();
        if (file_exists($localPath)) {
            $lastModifiedStationFile = Carbon::createFromFormat('U', (filemtime($localPath)));
        }
        //check if the date on the old file is older than 1 day, else return the old path.
        // download can be forced with the optional parameter.
        if ($forceDownloadFile || !file_exists($localPath)
            || (isset($lastModifiedStationFile) && $lastModifiedStationFile->diffInDays(Carbon::now()) >= 1)
        ) {
            //echo "<p>Controller::retrieveFile >> load new zip!</p>";
            $path = pathinfo($localPath);
            if (!is_dir($path['dirname'])) {

                mkdir($path['dirname'], 0755, true);
            }

            if (ftp_login($ftp_connection, $ftpConfig->userName, $ftpConfig->userPassword)) {
//                DWDUtil::log(self::class, 'File "' . $ftpPath . '"exists on server? ' . ftp_size($ftp_connection, $ftpPath));
                if (ftp_size($ftp_connection, $ftpPath) > -1 && ftp_get($ftp_connection, $localPath, $ftpPath, FTP_BINARY)) {
                    $files[] = $localPath;
                } else {
                    return null;
                }

                ftp_close($ftp_connection);
                return $localPath;
            }
        }

        return $localPath;
    }
public function retrieveFile(AbstractHourlyService $service, DWDStation $nearestStation, $forceDownloadFile = false)
    {
        $config = DWDConfiguration::getConfiguration();
        $ftpConfig = $config->ftp;


        $fileName = $service->getFileName($nearestStation->getId());
        $ftpPath = $service->getFileFTPPath($nearestStation->getId());
        $localPath = $service->getFilePath($fileName);
        DWDUtil::log(self::class, '$fileName=' . $fileName);
        DWDUtil::log(self::class, '$ftpPath=' . $ftpPath);
        DWDUtil::log(self::class, '$localPath=' . $localPath);

        //get file.
        $ftp_connection = ftp_connect($ftpConfig->url);
        //ftp_set_option($ftp_connection, FTP_TIMEOUT_SEC, 9000);
        $files = array();
        if (file_exists($localPath)) {
            $lastModifiedStationFile = Carbon::createFromFormat('U', (filemtime($localPath)));
        }
        //check if the date on the old file is older than 1 day, else return the old path.
        // download can be forced with the optional parameter.
        if ($forceDownloadFile || !file_exists($localPath)
            || (isset($lastModifiedStationFile) && $lastModifiedStationFile->diffInDays(Carbon::now()) >= 1)
        ) {
            //echo "<p>Controller::retrieveFile >> load new zip!</p>";
            $path = pathinfo($localPath);
            if (!is_dir($path['dirname'])) {

                mkdir($path['dirname'], 0755, true);
            }

            if (ftp_login($ftp_connection, $ftpConfig->userName, $ftpConfig->userPassword)) {
//                DWDUtil::log(self::class, 'File "' . $ftpPath . '"exists on server? ' . ftp_size($ftp_connection, $ftpPath));
                if (ftp_size($ftp_connection, $ftpPath) > -1 && ftp_get($ftp_connection, $localPath, $ftpPath, FTP_BINARY)) {
                    $files[] = $localPath;
                } else {
                    return null;
                }

                ftp_close($ftp_connection);
                return $localPath;
            }
        }

        return $localPath;
    }
public function retrieveFile ( AbstractHourlyService $ service , DWDStation $ nearestStation , $ forceDownloadFile = false ) { $ config = DWDConfiguration :: getConfiguration ( ) ; $ ftpConfig = $ config -> ftp ; $ fileName = $ service -> getFileName ( $ nearestStation -> getId ( ) ) ; $ ftpPath = $ service -> getFileFTPPath ( $ nearestStation -> getId ( ) ) ; $ localPath = $ service -> getFilePath ( $ fileName ) ; DWDUtil :: log ( self :: class , '$fileName=' . $ fileName ) ; DWDUtil :: log ( self :: class , '$ftpPath=' . $ ftpPath ) ; DWDUtil :: log ( self :: class , '$localPath=' . $ localPath ) ; //get file. $ ftp_connection = ftp_connect ( $ ftpConfig -> url ) ; //ftp_set_option($ftp_connection, FTP_TIMEOUT_SEC, 9000); $ files = array ( ) ; if ( file_exists ( $ localPath ) ) { $ lastModifiedStationFile = Carbon :: createFromFormat ( 'U' , ( filemtime ( $ localPath ) ) ) ; } //check if the date on the old file is older than 1 day, else return the old path. // download can be forced with the optional parameter. if ( $ forceDownloadFile || ! file_exists ( $ localPath ) || ( isset ( $ lastModifiedStationFile ) && $ lastModifiedStationFile -> diffInDays ( Carbon :: now ( ) ) >= 1 ) ) { //echo "<p>Controller::retrieveFile >> load new zip!</p>"; $ path = pathinfo ( $ localPath ) ; if ( ! is_dir ( $ path [ 'dirname' ] ) ) { mkdir ( $ path [ 'dirname' ] , 0755 , true ) ; } if ( ftp_login ( $ ftp_connection , $ ftpConfig -> userName , $ ftpConfig -> userPassword ) ) { //                DWDUtil::log(self::class, 'File "' . $ftpPath . '"exists on server? ' . ftp_size($ftp_connection, $ftpPath)); if ( ftp_size ( $ ftp_connection , $ ftpPath ) > - 1 && ftp_get ( $ ftp_connection , $ localPath , $ ftpPath , FTP_BINARY ) ) { $ files [ ] = $ localPath ; } else { return null ; } ftp_close ( $ ftp_connection ) ; return $ localPath ; } } return $ localPath ; }
Retrieves a file for the controller by querying the nearest station.
@param AbstractHourlyService $service
@param DWDStation $nearestStation
@param bool $forceDownloadFile
@return string filePath
Retrieves a file for the controller by querying the nearest station .