尝试将Doctrine DBAL添加到我自己的项目中以使用它来访问我的数据库等。我没有作曲家而我从未使用它。这就是我根据文件要做的事情:
use Doctrine\Common\ClassLoader;
class Connection
{
var $connection;
//Constructor
public function __construct()
{
require_once "doctrine/Common/ClassLoader.php";
$classLoader = new ClassLoader('Doctrine', 'doctrine');
$classLoader->register();
$config = new Configuration();
$connectionParams = array(
'dbname' => 'mydb',
'user' => 'root',
'password' => "",
'host' => 'localhost',
'driver' => 'pdo_mysql',
);
$this->connection = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
}
}
这取自这里: - http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html 和: - http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/introduction.html
我将Common和DBAL文件夹添加到我的项目中
我的文件夹结构如下所示:
所以会发生什么事情,我要么得到"找不到类XY"或类似的东西,基于我在代码上的变化。我永远无法按照教程那样执行它。
我在这里做错了什么?
我只想拥有连接对象,我可以开始使用查询构建器之类的东西......
我在这里完全迷失了......
更新:按要求安装了作曲家并立即获得此代码:
use Doctrine\DBAL\Configuration;
class Connection
{
var $connection;
//Constructor
public function __construct()
{
$config = new Configuration();
$connectionParams = array(
'url' => 'mysql://root:secret@localhost/mydb',
);
$this->connection = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
}
这是我的第一个链接中的第二个代码示例。告诉我" Class' Doctrine \ DBAL \ Configuration'找不到"。有趣的是,IntelliJ可以完美地自动完成路径(建议我在路径中完成DBAL时的配置),但PHP没有找到它。如果我删除新配置PHP只是告诉我,它没有找到DriverManager ...
我通过作曲家正确安装了它,至少作曲家告诉我它现在安装正确(作曲家在哪里保存图书馆?)
答案 0 :(得分:2)
您现在需要要求作曲家自动加载文件。
require __DIR__.'/vendor/autoload.php';
use Doctrine\DBAL\Configuration;
class Connection
{
var $connection;
//Constructor
public function __construct()
{
$config = new Configuration();
$connectionParams = array(
'url' => 'mysql://root:secret@localhost/mydb',
);
$this->connection = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
}
请注意,根据您的目录结构,自动加载文件可能位于其他位置,但通常这应该有效。
答案 1 :(得分:0)
注意命名空间的使用:如果其加载器的Doctrine命名空间是System.Collections
,则必须将文件放在Doctrine\Common\ClassLoader
文件夹中(" Doctrine" with a资本" D")。
请参阅Doctrine DBAL文档的Introduction chapter内显示的代码段。