- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试仅将 Doctrine DBAL Connection 组件注册为 Symfony4 中的服务。
我不需要 symfony 提供的完整 DoctrineBundle,只需要提供基本数据库抽象级别的部分。
现在我一直在研究如何将 composer 下载的原始库作为服务来实现。
Connection 类应该是这样创建的,来自官方文档:
<?php
$config = new \Doctrine\DBAL\Configuration();
//..
$connectionParams = array(
'dbname' => 'mydb',
'user' => 'user',
'password' => 'secret',
'host' => 'localhost',
'driver' => 'pdo_mysql',
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
如果可以,如何在service.yml配置中配置这种类型的服务?
如果不是,我该如何进行?
最佳答案
您最好只使用 doctrine bundle 并从配置文件中删除 orm 部分。不会真正增加太多开销,而且比自己动手更容易。
话虽如此,这里是最小 dbal 设置的详细信息
composer create symfony/skeleton s40dbal
cd s40dbal
composer require server
composer require doctrine/dbal
# .env
DB_URL=mysql://user:password@localhost/dbname
# config/services.yaml
Doctrine\DBAL\Configuration:
Doctrine\DBAL\Connection:
factory: 'Doctrine\DBAL\DriverManager::getConnection'
arguments:
-
url : '%env(DB_URL)%'
driverOptions: {20: false} # emulate prepared statements
- '@Doctrine\DBAL\Configuration'
# DefaultController.php
use Doctrine\DBAL\Connection;
class DefaultController
{
public function index(Connection $conn)
{
$stmt = $conn->prepare('SELECT id,name FROM users WHERE username = ?');
$stmt->execute(['someuser']);
$row = $stmt->fetch();
var_dump($row);
return new Response('dbal');
}
}
享受
关于php - 如何在 Symfony 4 中不使用 DoctrineBundle 将 DBAL Doctrine 连接注册为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620275/
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
当我尝试将服务 @doctrine.orm.entity_manager 作为我的监听器 UserDeletionListener 的参数时发生错误。 我的服务: se.doctrine_listen
这个问题在这里已经有了答案: Laravel model with POINT/POLYGON etc. using DB::raw expressions (3 个回答) 1年前关闭。 我正在使用
我最近将一个Laminas项目从信条迁移1.4升级到3.6,并将信条-orm模块从1升级到5.3。在我的部署服务器上,当运行./vendor/bin/stasty-module sync-meta-s
我收到以下 SQL 的“基数冲突”错误: Doctrine\DBAL\Exception\DriverException: 执行时发生异常 SELECT p.* FROM mod_products_p
我想请求您帮助 Doctrine2 DBAL使用 QueryBuilder 构建的查询。我已经习惯了 ORM,但我认为对于在监听器中调用的此类查询来说,这是一种矫枉过正的做法。 我需要使用 SELEC
我想请求您帮助 Doctrine2 DBAL使用 QueryBuilder 构建的查询。我已经习惯了 ORM,但我认为对于在监听器中调用的此类查询来说,这是一种矫枉过正的做法。 我需要使用 SELEC
我正在使用 Doctrine 2,其中我有多个 DBAL 连接。我在 ORM 中也有多个 EntityManager。 我需要能够以某种方式将特定的 DBAL 连接自动连接到其他 Symfony 3
背景 我正在处理的应用程序目前全部使用 mysql_query 语句,我们希望迁移到 Doctrine DBAL。 mysql_query 函数有数千种用法,我们希望使用新的 DBAL 开始新的开发并
我刚刚将 Doctrine DBAL 安装到一个简单的测试 PHP 项目中,并创建了一个测试数据库并成功进行了一些查询。包括同时使用位置参数和命名参数的查询,例如: echo ''; echo 'Si
您好,我有一个在事务中工作的服务,它与远程 API 通信,我想记录此 API 中的每个请求/响应,但如果主事务回滚,任何日志也会回滚。 我的想法是克隆DBAL连接。它会打开第二个没有事务的连接,我可以
我正在尝试创建一个 Doctrine DBAL querybuilder 对象并在其中设置一个参数。(使用 postgres db,dbal 2.3.4, Doctrine $connection =
我将 Symfony2 框架与 Doctrine DBAL 结合使用,并将一些数据插入 MySql 数据库。插入看起来像这样(简化): $conn->insert('sometable', array
我有这个带有子查询的查询。 SELECT * FROM (SELECT module_id FROM an_modules AS m LIMIT 20 OFFSET 0) AS m LEFT JOIN
我正在使用 Doctrine 的枚举类型来跟踪我在 Symfony 应用程序中使用的实体的状态。我正在(大致)使用此处描述的方法: http://docs.doctrine-project.org/p
我不太明白如何在 DBAL 中进行事务处理 我有以下脚本,它根据行的 ID 更新列。我放置了一个表中不存在的假 ID,(因此无法进行更新)但是尽管这是一个事务,但第一个更新已提交。如果其中一个交易失败
是否可以使用 Doctrine DBAL 对 SQLite 数据库进行批量插入?即使以下操作更有效率: $twitter = new TwitterAPIExchange($twitterAuth);
我正在尝试使用 DBAL 查询生成器更新记录,但它似乎不起作用。我试图设置的 data 列只有在我将此处的 test 示例值替换为数字时才有效。 在那种情况下,它会完美地更新我的记录。 即使我也为它使
我有这个简单的例子: $names = ['a', 'b']; $query = $dbConnection->createQueryBuilder(); $query->select('*')
我有这个文件夹结构 [-] myapp/ [+] app/ [-] lib/ [-] vendor/ [-] doctrine/
我是一名优秀的程序员,十分优秀!