Добавить Doctrine DBAL в собственный php проект

Попытка добавить 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, добавленная в мой проект

Моя структура папок выглядит так:

  1. корень
    • учение
      • DBAL
      • общий
    • php вещи
    • index.php (где выполняется connection.php)

Так что получается, что я либо получаю «Не могу найти класс 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 сохраняет библиотеки?)

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);
}

Обратите внимание, что в зависимости от вашей структуры каталогов файл автозагрузки может быть где-то еще, но обычно это должно работать.

2

Другие решения

Обратите внимание на использование пространств имен: если пространство имен Doctrine для его загрузчика Doctrine\Common\ClassLoader, вы должны поместить файлы внутри Doctrine\Common папка («Учение» с большой буквы «D»).

Смотрите фрагмент кода, показанный внутри Введение глава Доктрины DBAL документация.

0

По вопросам рекламы [email protected]