@symfony_php

Страница 543 из 1418
Bogdan
02.01.2018
12:10:12
привет, Attempted to load class "LiqPay" from the global namespace. Did you forget a "use" statement? - в чем может быть проблема? пробовал и new \LiqPay и с use Liqpay. Symfony 3.3. В 4 все ок работает, без проблем подключается

Salavat
02.01.2018
12:13:30
А у LiqPay есть namespace ?

Bogdan
02.01.2018
12:14:14
нету

Shmaltorhbooks
02.01.2018
12:14:49
а конфиги автолоадера в компосерах одинаковые?

Google
Bogdan
02.01.2018
12:15:50
"autoload": { "psr-4": { "": "src/" }, "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] }, - проект

"autoload":{ "classmap":[ "./LiqPay.php" ] } - ликпей

Shmaltorhbooks
02.01.2018
12:17:57
в psr-0 перенести?

"psr-0": { "LiqPay": "" }

так погоди. это конфиги рабочей версии? или нерабочей? или они идентичны?

Bogdan
02.01.2018
12:21:00
первое - конфиг проекта симфони 3.3, где не могу создать экземпляр класса liqpay/ второе - конфиг автолоадера самого liqpay

"autoload": { "psr-4": { "App\\": "src/" } }, вот это конфиг symfony 4, где все работает

chesarhop
02.01.2018
12:22:39
Ты прочитал доку по php как работают пространство имён?

Bogdan
02.01.2018
12:24:29
у LiqPay нету неймспейса, разве он не должен создаваться new \LiqPay() ?

Shmaltorhbooks
02.01.2018
12:24:51
если автолоадер найдёт файл - канеш должен

Bogdan
02.01.2018
12:26:46
"autoload":{ "classmap":[ "./LiqPay.php" ] } это в composer.json LiqPay, он тут явно указывает на этот файл

Bogdan
02.01.2018
12:27:13
вендора

Google
Shmaltorhbooks
02.01.2018
12:27:25
вендор и вне папки vendor?

Bogdan
02.01.2018
12:27:31
внутри



Shmaltorhbooks
02.01.2018
12:27:50
а classmap откуда пляшет?

./LiqPay.php - какой полный путь будет?

Sergey
02.01.2018
12:28:30
внутри
открой composer.json вендора и смотри как там объявлен автозагрузчик

Shmaltorhbooks
02.01.2018
12:28:46
можешь залезть в папку vendor/composer, там есть файл autoloader_classmap - и там ты увидишь откуда classmap пляшет

Bogdan
02.01.2018
12:29:49
'LiqPay' => $vendorDir . '/liqpay/liqpay/LiqPay.php'

Sergey
02.01.2018
12:35:53
симфони не влияет на автозагрузку композера, и поскольку у тебя этот класс есть в классмэпе - все должно работать

если не работает - стоит смотреть на то как ты запускаешь, может быть масса всего

в угодайку как-то играть не хочется

Shmaltorhbooks
02.01.2018
12:39:38
погоди, у classmap'а текущей папкой является папка проекта, а не vendor

Bogdan
02.01.2018
12:40:09
в какую сторону вообще смотреть?

Shmaltorhbooks
02.01.2018
12:40:24
и указание ./LiqPay.php никак не может преобразоваться в что-то, что указывает на vendor - это раз

а во вторых, строка ./LiqPay.php никак не может преобразоваться в что-то, что содержит в себе путь liqpay/liqpay/

у тебя в конфигах автолоадера задвоены указания на этот файл

Bogdan
02.01.2018
12:41:33
'LiqPay' => $vendorDir . '/liqpay/liqpay/LiqPay.php' - тут же верный путь, нет?

Shmaltorhbooks
02.01.2018
12:41:44
путь верный

но на основании чего он сгенерирован?

я думаю, что он сгенерирован на основании psr

Google
Shmaltorhbooks
02.01.2018
12:42:02
но!

автолоадер натыкается на что-то еще, видит, что по этому пути файла нету и дальше не пытается

если из классмапа снесешь - должно взлететь, ясчитаю

в общем и целом - меняешь один параметр в автолоадере, потом ищешь поиском по папке vendor/composer и смотреть сколько там есть записей с LiqPay и насколько они соответствуют истине

но не больше одного параметра за раз меняй)

Bogdan
02.01.2018
12:46:22


Sergey
02.01.2018
12:46:52
но на основании чего он сгенерирован?
в класмэпе все правильно, че ты панику разводишь?

Bogdan
02.01.2018
12:46:56
есть только в autoload_classmap.php и в installed.json. Путь верный, снос из классмапа не решил проблему

Sergey
02.01.2018
12:47:22
простой тэст

<?php require __DIR__ . '/vendor/autoload.php'; $test = new \LiqPay()

начните с этого

Shmaltorhbooks
02.01.2018
12:48:12
в класмэпе все правильно, че ты панику разводишь?
classmap текущей папкой проекта считает не vendor, а папку проекта. как, находясь в папке проекта и написав ./LiqPay.php можно получить путь $vendorDir . '/liqpay/liqpay/LiqPay.php'?

Shmaltorhbooks
02.01.2018
12:48:30
та пусть даже и текущая - это vendor

Shmaltorhbooks
02.01.2018
12:48:52
та пусть даже и текущая - это vendor. откуда тогда путь liqpay/liqpay взялся?

Sergey
02.01.2018
12:49:05
https://github.com/liqpay/sdk-php/blob/master/composer.json#L19-L22

вот откуда

Дмитрий
02.01.2018
12:49:22
./

Sergey
02.01.2018
12:49:43
все намного проще, как мне кажется подключается просто "не тот" автозагрузщик

проверить легко и просто - 2 строчки кода

Google
Sergey
02.01.2018
12:50:08
что бы искать проблему не в композере

а то ты уж сильно глубоко полез

Shmaltorhbooks
02.01.2018
12:52:21
так в том-то и прикол, что простой тест у него проходит на сф4, а на сф3 - не очень)

Bogdan
02.01.2018
12:52:47
нашел в рабочем проекте в autoload_static.php

public static $classMap = array ( 'LiqPay' => __DIR__ . '/..' . '/liqpay/liqpay/LiqPay.php', );

Sergey
02.01.2018
12:54:25
так в том-то и прикол, что простой тест у него проходит на сф4, а на сф3 - не очень)
но это не точно) прикол в том что симфони вообще никаким боком не относится к автозагрузке. И если оно работает - следует смотреть на другие различия.

Shmaltorhbooks
02.01.2018
12:54:37
я к тому, что у него два проекта

в одном работает, в другом нет

чтоб как-то их идентифицировать я назвал их сф4 и сф3))

Admin
ERROR: S client not available

Shmaltorhbooks
02.01.2018
12:55:57
я в курсе, что сф никак не относится к автозагрузке. это всего лишь именование переменных))

Sergey
02.01.2018
12:57:30
нашел в рабочем проекте в autoload_static.php
я повторюсь. Сделай файлик php-ный с двумя строчками: require __DIR__ . '/vendor/autoload.php'; $test = new LiqPay();

запусти и там и там

и перестань думать что "композер чето не то сделал".

переключи внимание на то как ты юзаешь автозагрузчик, вдруг ты на app/autoload все еще полагаешься или проект в целом запускается в виртуалке какой или в контейнере, кто его знает

или, совсем тупо, ты забыл сделать composer dump

последнее эти две строчки выявят

Bogdan
02.01.2018
13:00:14
работает

Shmaltorhbooks
02.01.2018
13:00:57
в обоих проектах работает?

Google
Sergey
02.01.2018
13:01:06
вот, так что с автозагрузщиком все ок

дальше вопрос - какой автозагрузчик юзает твоя симфони и как ты запускаешь то что запускаешь

Bogdan
02.01.2018
13:01:37
в нерабочем только сделал, в рабочем для чего проверять?

Sergey
02.01.2018
13:01:41
я бы начал с вопроса "как ты запускаешь"

Shmaltorhbooks
02.01.2018
13:01:50
справедливо)

Bogdan
02.01.2018
13:03:39
"autoload": { "psr-4": { "": "src/" }, "classmap": [ "app/AppKernel.php", "app/AppCache.php" ] }, Вот автозагрузчик с проекта, где не работает

Shmaltorhbooks
02.01.2018
13:08:52
Так только что в нем же работало?)

Bogdan
02.01.2018
13:09:53
в корне создал, запустил файл, все ок
да. А вот из сервиса $liqpay = new \LiqPay() не работает

Sergey
02.01.2018
13:13:40
да. А вот из сервиса $liqpay = new \LiqPay() не работает
мы уже выяснили что твой конфиг в порядке и проблема в другом

забудь об этом

что и как ты запускаешь что бы убедиться что работает/не работает?

Shmaltorhbooks
02.01.2018
13:14:33
В appKernel и appCache какие автолоадеры подключаются?

Sergey
02.01.2018
13:14:46
Shmaltorhbooks
02.01.2018
13:14:46
Те же, что в тестовом файле?

Bogdan
02.01.2018
13:15:08
шлю через постмен запрос, из контроллера вызывается сервис, в котором создается экземпляр класса LiqPay

Shmaltorhbooks
02.01.2018
13:15:08
В точке входа приложения?

Sergey
02.01.2018
13:15:11
нужно плясать от точки входа

Bogdan
02.01.2018
13:15:21


Sergey
02.01.2018
13:15:44
шлю через постмен запрос, из контроллера вызывается сервис, в котором создается экземпляр класса LiqPay
1. что в точке входа? убедись что там тот автозагрузчик подключается что нужно 2. где запущено приложение? убедись что окружение ссылается на те же файлы что и ты сейчас смотришь

Shmaltorhbooks
02.01.2018
13:16:00
В точке входа приложения?
Какие автолоадеры в index.php или как он там у тебя называется

Bogdan
02.01.2018
13:16:34
$loader = require __DIR__.'/../vendor/autoload.php'

Sergey
02.01.2018
13:16:36
короч 99% что проблема в окружении

Страница 543 из 1418