taluu / doctrine-orm-provider
Requires
- php: >=5.3.2
- doctrine/common: >= 2.3.0, < 2.4.0-beta
- doctrine/dbal: >= 2.3.0, < 2.4.0-beta
- doctrine/orm: >= 2.3.0, < 2.4.0-beta
- silex/silex: 1.0.*
Suggests
- symfony/console: Necessary if you would like to use the Doctrine CLI tools
This package is not auto-updated.
Last update: 2022-02-01 12:21:31 UTC
README
此扩展通过复用与 DBAL 扩展(Silex 包含的默认 DoctrineServiceProvider)建立的数据库连接来为 Silex 设置 Doctrine ORM。
注意: 此提供程序不再维护;您将找到更好的 DoctrineORM 提供程序,由 Beau Simensen (@simensen) 维护和更新: dflydev/doctrine-orm-service-provider
注意: 此提供程序最初由 Marc Jakubowski 创建并提供,但由于未知原因,由于 Silex API 自上次修改以来已发展,他不能再维护它。
在 README 中您可以找到以下主题
依赖项
- PHP 5.3.2 及以上
- Silex
- Doctrine 的通用库
- Doctrine 2 对象关系映射器
- Doctrine 数据库抽象层
安装
将此扩展添加到您的 Silex 项目中,您基本上有三个选项。我们强烈建议第一种方法!
composer.json
https://packagist.org.cn/packages/taluu/doctrine-orm-provider
将 'taluu/doctrine-orm-provider' 添加到项目 composer.json 文件中的依赖项,并更新您的依赖项。这是迄今为止最简单的方法,因为它会自动添加 Doctrine 依赖项,并将所有内容添加到由 Composer 提供的自动加载机制中。
有关 Composer 的更多信息,请访问 getcomposer.org。
Git
另一种选择是克隆项目
cd /path/to/your_project/vendor
git clone git://github.com/taluu/nutwerk-orm-extension.git
或者,如果您的项目也在 Git 仓库中,您可以将其添加为子模块
cd /path/to/your_project
git submodule add git://github.com/taluu/nutwerk-orm-extension.git vendor/nutwerk-orm-extension
这将要求您手动安装所有依赖项。请注意,您还需要手动将提供程序添加到自动加载机制。关于这两个主题的更多信息,请参阅下文。
下载存档
GitHub 还提供了 下载 ZIP 存档 的选项,您可以在 vendor 文件夹中提取它。此方法也需要您手动安装所有依赖项并将所有内容添加到您的自动加载器中。
配置
首先,您应该配置好Doctrine DBAL连接。有关配置DoctrineServiceProvider的更多信息,我建议阅读Silex文档中的此页。
注册Doctrine ORM服务提供者是相当直接的
<?php /* ... */ // If you're not using Composer, you'll need to register the Nutwerk vendor to wherever you downloaded the library $app->register(new Nutwerk\Provider\DoctrineORMServiceProvider(), array( 'db.orm.proxies_dir' => __DIR__.'/var/cache/doctrine/Proxy', 'db.orm.proxies_namespace' => 'DoctrineProxy', 'db.orm.auto_generate_proxies' => true, 'db.orm.entities' => array(array( 'type' => 'annotation', 'path' => __DIR__.'/app', 'namespace' => 'Entity', )), )); /* ... */
参数(及其默认值)
以下列出所有参数及其默认值(它们也可以在DoctrineORMServiceProvider::setOrmDefaults中找到)。
-
db.orm.auto_generated_proxies
默认:
true
设置是否由Doctrine自动在运行时生成代理类。如果设置为
false
,则必须手动使用Doctrine命令行工具生成代理类。建议在生产环境中禁用自动生成。 -
db.orm.cache
默认:
new ArrayCache
定义应使用哪种缓存方法。默认(ArrayCache)在开发时应该足够好,但在生产环境中,您可能希望将其更改为APC或Memcache等。更多详细信息请参阅Doctrine 2 ORM 2.1文档中的第22章缓存。
-
db.orm.entities
默认
array( array( 'type' => 'annotation', 'path' => 'Entity', 'namespace' => 'Entity', ) )
An array of arrays which should contain:
* ``type``: Type of metadata driver used (``annotation``, ``yml``, ``xml``)
* ``path``: Path to where the metadata is stored
* ``namespace``: Namespace used for the entities
The Doctrine ORM Service Provider uses a _DriverChain_ internally to configure Doctrine 2 ORM.
This allows you to use mixed types of metadata drivers in a single project.
-
db.orm.proxies_dir
默认:
cache/doctrine/Proxy
设置Doctrine生成任何代理类时要使用的目录。有关代理类的详细说明以及如何在Doctrine中使用它们,请参阅Doctrine ORM文档中的第3.5节代理对象。
-
db.orm.proxies_namespace
默认:
DoctrineProxy
设置用于生成代理类的命名空间。有关代理类的详细说明以及如何在Doctrine中使用它们,请参阅Doctrine ORM文档中的第3.5节代理对象。
用法
您可以通过调用$app['db.orm.em']
来访问EntityManager。