Symfony 4, Как загрузить сторонние библиотеки из папки поставщика

Я пытаюсь загрузить стороннюю библиотеку под названием Идиорма, но не могу заставить ее работать. Я установил через композитор вот такой composer require j4mie/idiorm. Библиотека установлена ​​в папке vendor. Я вижу, как он загружен в autoload_static.php вот так

public static $classMap = array (
    'Collator' => __DIR__ . '/..' . '/symfony/intl/Resources/stubs/Collator.php',
    'IdiormMethodMissingException' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
    'IdiormResultSet' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
    'IdiormString' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
    'IdiormStringException' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
    'IntlDateFormatter' => __DIR__ . '/..' . '/symfony/intl/Resources/stubs/IntlDateFormatter.php',
    'Locale' => __DIR__ . '/..' . '/symfony/intl/Resources/stubs/Locale.php',
    'NumberFormatter' => __DIR__ . '/..' . '/symfony/intl/Resources/stubs/NumberFormatter.php',
    'ORM' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
    'SqlFormatter' => __DIR__ . '/..' . '/jdorn/sql-formatter/lib/SqlFormatter.php',
);

Я не могу предоставить ему собственное пространство имен, так как это сторонняя библиотека. Итак, как мне установить его правильно, чтобы я мог начать использовать его в своих контроллерах

вы можете создать свой собственный пакет, который использует эту библиотеку в качестве зависимости для правильной интеграции с symfony (symfony.com/doc/master/bundles.html), но почему бы вам не использовать doctrine orm?

Pavel Alazankin 18.04.2018 11:46

@PavelAlazankin Спасибо, я прочитаю об этом. Наши старшие разработчики решили использовать вместо этого Idiorm ORM.

Sanjok Gurung 18.04.2018 11:49

@PavelAlazankin Я создал пакет, но как мне импортировать файл vendors/j4mie/idiorm.php. include и require не сработали.

Sanjok Gurung 18.04.2018 12:06

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

Pavel Alazankin 18.04.2018 13:27

Я добавил use ORM; в раздел использования, а затем внутри действия я настроил соединение с ORM::configure(...), как сказано в документации, и получил некоторые данные из базы данных с $product = ORM::for_table('product')->where('id', '1')->find_one(); (idiorm.readthedocs.io/en/latest/querying.html)

Pavel Alazankin 18.04.2018 13:30

@PavelAlazankin Спасибо. это действительно сработало. Я думаю, что не могу использовать use, если не определено пространство имен. Отличная работа.

Sanjok Gurung 18.04.2018 13:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
6
755
1

Ответы 1

Хорошо, действительно простая проблема, как только пакет загружен через композитор, в моем случае composer require j4mie/idiorm вы можете буквально начать "использовать" его. Никакой каламбур

в моем классе модели

use ORM .....

Другие вопросы по теме