Развернутый Dokku Silex не может найти PdoServiceProvider

У меня есть проект, выполненный с помощью Silex, и я использовал herrera-io/silex-pdo в качестве поставщика PDO, но я столкнулся со случайными сбоями с ошибками сокета (я подключаюсь к БД через сокет), так как эта библиотека заброшена, я перешел на csanquer/pdo-service-provider, и она работает просто отлично на моем локальном сервере, но когда я развертываю на удаленном, я получаю следующую ошибку:

PHP Fatal error: Class 'Csanquer\Silex\PdoServiceProvider\Provider\PdoServiceProvider' not found in /app/web/index.php on line 52

Вот код вокруг строки 52:

use Csanquer\Silex\PdoServiceProvider\Provider\PdoServiceProvider;

$app->register(
// you can customize services and options prefix with the provider first argument (default = 'pdo')
    new PdoServiceProvider('pdo'), // Line 52
    array(
        'pdo.server'   => array(
            // PDO driver to use among : mysql, pgsql , oracle, mssql, sqlite, dblib
            'driver'   => 'mysql',
            'host'     => 'unix_socket=/app/mysqld.sock',
            'dbname'   => 'db_beta',
            'port'     => 3306,
            'user'     => 'user',
            'password' => 'pass',
        ),
        // optional PDO attributes used in PDO constructor 4th argument driver_options
        // some PDO attributes can be used only as PDO driver_options
        // see http://www.php.net/manual/fr/pdo.construct.php
        'pdo.options' => array(
            \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
        ),
        // optional PDO attributes set with PDO::setAttribute
        // see http://www.php.net/manual/fr/pdo.setattribute.php
        'pdo.attributes' => array(
            \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
        ),
    )
);

Заранее спасибо за любую помощь или любую подсказку о том, что может пойти не так!


person joao Beno    schedule 13.11.2015    source источник


Ответы (1)


Выяснилось, что проблема была в инструкции по применению. Чтобы исправить, просто измените:

use Csanquer\Silex\PdoServiceProvider\Provider\PdoServiceProvider; To: use Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider;

А также:

new PdoServiceProvider('pdo') To: new PDOServiceProvider('pdo')

Теперь это работает!

person joao Beno    schedule 13.11.2015