doctrine-dbal.php 1.47 KB
Newer Older
1 2
<?php

3
use Doctrine\DBAL\Tools\Console\ConnectionProvider;
4
use Doctrine\DBAL\Tools\Console\ConsoleRunner;
5
use Symfony\Component\Console\Helper\HelperSet;
6

7
$files       = [__DIR__ . '/../vendor/autoload.php', __DIR__ . '/../../../autoload.php'];
8 9
$loader      = null;
$cwd         = getcwd();
10
$directories = [$cwd, $cwd . DIRECTORY_SEPARATOR . 'config'];
11
$configFile  = null;
12

13 14 15
foreach ($files as $file) {
    if (file_exists($file)) {
        $loader = require $file;
16

17 18
        break;
    }
19
}
20

21
if (! $loader) {
22 23
    throw new RuntimeException('vendor/autoload.php could not be found. Did you run `php composer.phar install`?');
}
24

25 26 27 28 29
foreach ($directories as $directory) {
    $configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';

    if (file_exists($configFile)) {
        break;
30
    }
31
}
32

33
if (! file_exists($configFile)) {
34
    ConsoleRunner::printCliConfigTemplate();
35

36 37 38
    exit(1);
}

39
if (! is_readable($configFile)) {
40
    echo 'Configuration file [' . $configFile . '] does not have read permission.' . PHP_EOL;
41

42 43 44
    exit(1);
}

45 46
$commands                      = [];
$helperSetOrConnectionProvider = require $configFile;
47

48 49 50 51
if (! $helperSetOrConnectionProvider instanceof HelperSet && ! $helperSetOrConnectionProvider instanceof ConnectionProvider) {
    foreach ($GLOBALS as $candidate) {
        if ($candidate instanceof HelperSet) {
            $helperSetOrConnectionProvider = $candidate;
52

53 54 55 56 57
            break;
        }
    }
}

58
ConsoleRunner::run($helperSetOrConnectionProvider, $commands);