根据Symfony 2文档,您必须使用以下PHP代码连接到数据库并执行查询...
$conn = $this->get('database_connection');
$users = $conn->fetchAll('SELECT * FROM users');
我是Symfony 2的新手,但我对OOP很有经验。我想知道是否可以从任何捆绑包中访问全局可用的$conn
变量。 $conn
变量将包含$this->get('database_connection')
的值,因此每次我想创建新查询时都不必重新键入$conn = $this->get('database_connection');
。
谢谢!
答案 0 :(得分:3)
全局变量大部分时间都不是你想要的OOP。当涉及到处理多个变量的方法时,它们会让人感到困惑,甚至可能被局部变量隐藏。对我来说,使用像
这样的陈述$anything = $this->get('what.the.hell.why.arent.those.identifiers.shorter');
和你一样恼人,所以我最终创建了每个项目的Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller的一个子类,它提供了使用实际标识符调用get的方法。在你的情况下,我会创建一个方法
public function getDatabaseConnection()
{
return $this->get('database_connection');
}
一般情况下 - 为什么不使用Doctrine来管理数据库连接?大多数查询都可以由ORM完成,这是使用面向数据库的真实面向对象的方法。想想看,我有几天也在玩Symfony2 / Doctrine,感觉很好。一开始,它可能看起来像一个配置的地狱,但一旦你完成了基本的配置,开发真的很快! :)