Longues méthodes
public function importCsv($path, $googleApiKey, $databaseDsn, $databaseUser, $databasePassword)
{
// Convert CSV to array of conferences
$lines = file($path);
$csv = array_map('str_getcsv', $lines);
$conferences = [];
foreach ($csv as $line) {
$conference = new Conference();
$conference->name = $line[0];
$conference->location = $line[1];
$conferences[] = $conference;
// Get coordinates for location
$location = urlencode($conference->location);
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address='.$location.'&key='.$googleApiKey;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);
$json = json_decode($response);
if (count($json->results) == 0) {
continue;
}
$latitude = $json->results[0]->geometry->location->lat;
$longitude = $json->results[0]->geometry->location->lng;
$coordinates = $latitude.','.$longitude;
$conference->coordinates = $coordinates;
// Save conference to database
$pdo = new PDO($databaseDsn, $databaseUser, $databasePassword);
$statement = $pdo->prepare('REPLACE INTO conference (name, location, coordinates) VALUES (?, ?, ?)');
$statement->execute([
$conference->name,
$conference->location,
$conference->coordinates,
]);