Silex Doctrine Extensions

时间:2011-12-06 18:26:36

标签: doctrine silex

要使用Silex usage documentation中的Doctrine Extension,他们会要求你

“确保在供应商/学说 - dbal中放置Doctrine DBAL副本,在供应商/学说中使用Doctrine Common。”

然后他们将举例说明如何注册:

$app->register(new Silex\Extension\DoctrineExtension(), array(
    'db.options'            => array(
        'driver'    => 'pdo_sqlite',
        'path'      => __DIR__.'/app.db',
    ),
    'db.dbal.class_path'    => __DIR__.'/vendor/doctrine-dbal/lib',
    'db.common.class_path'  => __DIR__.'/vendor/doctrine-common/lib',
));

我没有得到的是两件事......

  

1)路径__DIR _。'vendor / doctrine-dbal / lib'

lib是什么意思?我没有在doctrine包中看到lib文件夹或文件。

  

2)教义dbal和教义共同......

解压后的tar的文件夹结构如下所示: enter image description here 这是否意味着我将每个文件夹的内容放在各自的文件夹中?

感谢您的帮助。我在找出这些扩展的路径时遇到的麻烦比我自己的扩展要多。

-J

3 个答案:

答案 0 :(得分:1)

如果您使用git作为版本控制系统(您应该),请将它们作为子模块包含在内。

然后只需这样添加:

git submodule add git://github.com/doctrine/dbal.git vendor/doctrine-dbal
git submodule add git://github.com/doctrine/common.git vendor/doctrine-common

接下来初始化子模块文件夹:

git submodule init

并从git中获取它们:

git submodule update --recursive

答案 1 :(得分:0)

lib应与DBAL/lib文件夹相对应,同样应与Common/lib文件夹相对应。我认为这些说明更符合基于composer的安装布局。

答案 2 :(得分:0)

下载DBLA后,将'Doctrine'文件夹复制到'vendor',然后将db.dbal.class_path和db.common.class_path更新为'/ vendor /'。


    $app->register(new Silex\Provider\DoctrineServiceProvider(), array(
        'db.options' => array(
            'driver' => 'pdo_mysql',
            'host' => 'localhost',
            'dbname' => 'testdb',
            'user' => 'root',
            'password' => ''
        ),
        'db.dbal.class_path'    => __DIR__.'/vendor/',
        'db.common.class_path'  => __DIR__.'/vendor/',
    ));

在'vendor'中创建以下文件夹结构 '学说 - DBAL / lib目录/教义/ DBAL /'
'学说-的common / lib /学说/通用/'

将'Doctrine / DBAL /'复制到'vendor / doctrine-dbal / lib / Doctrine / DBAL /' 将'Doctrine / Common /'复制到'vendor / doctrine-common / lib / Doctrine / Common /'


    $app->register(new Silex\Provider\DoctrineServiceProvider(), array(
        'db.options'            => array(
            'driver'    => 'pdo_sqlite',
            'path'      => __DIR__.'/app.db',
        ),
        'db.dbal.class_path'    => __DIR__.'/vendor/doctrine-dbal/lib',
        'db.common.class_path'  => __DIR__.'/vendor/doctrine-common/lib',
    ));