Попытка добавить 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);
}
Это второй пример кода в моей первой ссылке. Сообщает мне, что «класс ‘Doctrine \ DBAL \ Configuration’ не найден». Забавно, что IntelliJ может автоматически завершить путь (подсказывает мне Конфигурацию при завершении DBAL в пути), но PHP не находит его. Если я удаляю новую конфигурацию, PHP просто говорит мне, что не находит DriverManager …
Я установил его правильно через composer, хотя, по крайней мере, composer говорит мне, что он установлен правильно сейчас (Где composer сохраняет библиотеки?)
Теперь вам нужен файл автозагрузки для композиторов.
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);
}
Обратите внимание, что в зависимости от вашей структуры каталогов файл автозагрузки может быть где-то еще, но обычно это должно работать.
Обратите внимание на использование пространств имен: если пространство имен Doctrine для его загрузчика Doctrine\Common\ClassLoader
, вы должны поместить файлы внутри Doctrine\Common
папка («Учение» с большой буквы «D»).
Смотрите фрагмент кода, показанный внутри Введение глава Доктрины DBAL документация.