Jacek Kowalski
2019-06-21 ea2e9b41b3b1eace8e99d6e2672ffffb07665e04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
require_once(__DIR__.'/vendor/autoload.php');
require_once(__DIR__.'/lib/database.php');
require_once(__DIR__.'/lib/vehicle_types.php');
require_once(__DIR__.'/config.php');
 
foreach($sources as $name => $source) {
    $logger = new Monolog\Logger('regenerate_'.$name);
    try {
        $logger->info('Regenerating '.$name.'...');
        
        $db = new Database($source['database']);
        
        $jsonContent = [];
        foreach($db->getAll() as $vehicle) {
            $jsonContent[$vehicle['id']] = $source['mapper']($vehicle['num']);
        }
        
        $json = json_encode($jsonContent);
        if(!file_put_contents($source['result_temp'], $json)) {
            throw new Exception('Result save failed');
        }
        rename($source['result_temp'], $source['result']);
        $logger->info('Finished');
    } catch(Throwable $e) {
        $logger->error($e->getMessage(), ['exception' => $e, 'exception_string' => (string)$e]);
    }
}