LINUX.ORG.RU

Symfony 2.5 namespaces problem

 , ,


0

1

Решил расширить модель, написать свой классы основываясь на DBAL Layer, в доках описаны какие классы нужны для подключения и прочее. Рядом с папкой Controller создал папку Model, в ней файл TestModel, и в файле указал namespace Acme\MyBundle\Model;

И уже в свое классе TestModel использую

$config = new \Doctrine\DBAL\Configuration();

И этот кусок кода выбивает ошибку:

PHP Fatal error: Class 'Doctrine\DBAL\Configuration' not found in

Делал просто use \Doctrine\DBAL; но ничего не помогло, в чем может быть ошибка? Даже удалял папку vendor и по новой делал composer udate, всеровно в пустую, не могу понять почему не видит существующий класс?


Нужно больше инфы. Ну или сам посмотри, какие пути в vendor/composer/autoload_namespaces.php или vendor/composer/autoload_psr4.php, ну или в каком-либо другом файле. Всё зависит от того, как оно вообще подключено. Если так определить ошибку не получается, ставь точку остановки или var_dump где-нибудь vendor/composer/ClassLoader.php и пали, что не так.

Kilte ★★★★★
()
Ответ на: комментарий от Kilte

Ну вроде детально описал) Есть папка Model, в этой папке TestModel.php namespace у этого файла естественно Acme\MyBundle\Model ну и в этом файле класс TestModel, вот в одном из методов класса мне нужен доступ к классам DBAL я делаю

$config = new \Doctrine\DBAL\Configuration();

И ошибку возвращает описаную выше, но в чем суть , что такое происходит с любым классом который использую там, хотя папка Model, лежит там же где и папки Controller, Entity, и в этих файлах при таких же условиях к примеру строка

$config = new \Doctrine\DBAL\Configuration();

работает без проблем, а вот в моем файле моделей жалуется на отсутствие класса, не могу понять почему так, ведь все определяю правильно и должно все работать.

Berdin
() автор топика
Ответ на: комментарий от Berdin

работает без проблем, а вот в моем файле моделей жалуется

А вот это уже очень странно. Всё же рекомендую хотябы попробовать продебажить композеровский автозагрузчик. Сначала посмотреть, как он ведёт себя в контроллерах при использовании этого класса, а потом в моделях. Если никаких отличий не будет (хотя с чего бы?), то будем думать.

Kilte ★★★★★
()
Ответ на: комментарий от Kilte

Как-то странно но может мой phpStorm что делал не так, но я делал Run этого файла и оно проганяло через php,скажем так дебажил на наличие ошок, и прочего, ради теста уже подключил модель в контроллер и заработало все, правда это до сих пор загадка для меня) но надеюсь будет и дальше работать, кстати решил сам на PDO написать модель, нету ссылок на мануал как правильно описать класс для работы с методами и константами PDO?

Berdin
() автор топика
Ответ на: комментарий от Berdin

ради теста уже подключил модель в контроллер и заработало все, правда это до сих пор загадка для меня)

Либо у меня в голове какая-то каша, либо незнаю что ещё сказать. Покажи composer.json. Что-то мне подсказывает, что там что-то не так.

кстати решил сам на PDO написать модел

Зачем PDO? Чем доктрина не угодила?

Но если хочется странного, то чтобы прокинуть PDO в контейнер, если не ошибаюсь, достаточно поправить конфиг. Что-то вроде:

# app/config/config.yml
services:
    pdo:
        class: PDO
        arguments:
            dsn:      "mysql:dbname=mydatabase"
            user:     myuser
            password: mypassword

Ну и в модель или куда там нужно, заинжектишь и можешь спокойно работать.

Kilte ★★★★★
()
Ответ на: комментарий от Kilte

Ну я же решил конект расписать в singleton, чтобы не плодить экземпляры обьекта. Та уже больше развлекаюсь с PDO, а Doctrine мне почему-то не нравиться, в ее вот такие моменты вникать напряжно становиться.

Berdin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.