要使用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的文件夹结构如下所示:
这是否意味着我将每个文件夹的内容放在各自的文件夹中?
感谢您的帮助。我在找出这些扩展的路径时遇到的麻烦比我自己的扩展要多。
-J
答案 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', ));