
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, он тут явно указывает на этот файл

Sergey
02.01.2018
12:27:04

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

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

Sergey
02.01.2018
12:48:36

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

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
запусти и там и там
и перестань думать что "композер чето не то сделал".
переключи внимание на то как ты юзаешь автозагрузчик, вдруг ты на 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

Sergey
02.01.2018
13:13:40
забудь об этом
что и как ты запускаешь что бы убедиться что работает/не работает?

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

Shmaltorhbooks
02.01.2018
13:16:00

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

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