/** * @param string $target * @return Database * @throws IOException */ public function download(string $target) : self { $date = new \DateTime('yesterday'); $url = new URL(preg_replace(array('/%Y/', '/%m/', '/%d/'), array($date->format('Y'), $date->format('m'), $date->format('d')), $this->url)); (new FTP())->setTimeout(3)->setHost($url->getHost())->setPort($url->getPort())->setUser($url->getUser())->setPassword($url->getPassword())->connect()->login()->passiv()->get($url->getPath(), $target)->disconnect(); return $this; }
public function testNoSchemaAndChangePort() { $url = new URL('https://*****:*****@test3:1337/test4/test5.html?test6=test7&test8[]=test9#test10'); $this->assertEquals('https', $url->getScheme()); $this->assertEquals('test1', $url->getUser()); $this->assertEquals('test2', $url->getPassword()); $this->assertEquals('test3', $url->getHost()); $this->assertEquals(1337, $url->getPort()); $this->assertEquals('/test4/test5.html', $url->getPath()); $this->assertEquals('test6=test7&test8[]=test9', $url->getQuery()); $this->assertEquals('test10', $url->getFragment()); $this->assertEquals('https://*****:*****@test3:1337/test4/test5.html?test6=test7&test8[]=test9#test10', $url->getURL()); $url->setURL('//test3:8080'); $this->assertEquals('https', $url->getScheme()); $this->assertEquals('', $url->getUser()); $this->assertEquals('', $url->getPassword()); $this->assertEquals('test3', $url->getHost()); $this->assertEquals(8080, $url->getPort()); $this->assertEquals('/', $url->getPath()); $this->assertEquals('', $url->getQuery()); $this->assertEquals('', $url->getFragment()); $this->assertEquals('https://test3:8080/', $url->getURL()); }