За последние 24 часа нас посетили 20709 программистов и 1715 роботов. Сейчас ищут 1378 программистов ...

Ошибки при работе с Guzzle

Тема в разделе "PHP для профи", создана пользователем maksivlev, 25 мар 2018.

  1. maksivlev

    maksivlev Новичок

    С нами с:
    2 мар 2018
    Сообщения:
    20
    Симпатии:
    0
    Здравствуйте.
    Пишу модуль для одной cms, первый раз использую Guzzle для отправки http запросов.
    Когда все в одной папке, то все работало.

    Но так получается, так что пришлось сделать связанный модуль . В результате один файл находиться в другом модуле(системном модуле) ,далеко в других папках от мною созданного модуля.

    Пишу в этом файлике:
    PHP:
    1. <?php
    2. require_once './classes/modules/yandex/Guzzle/autoload.php';
    3. ....
    4. $this->client = new GuzzleHttp\Client();
    В ответ ошибка: Class GuzzleHttp\Client not found

    Причем autoload.php он находит.

    Попробовал после require_once добавить use GuzzleHttp;

    Вроде помогло ошибки нет, но вышелWarning:

    PHP:
    1. Warning The use statement with non-compound name 'GuzzleHttp' has no effect in
    Вот я не понимаю, что ему нужно. или это проигнорировать можно?
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    use GuzzleHttp as ....
     
  3. maksivlev

    maksivlev Новичок

    С нами с:
    2 мар 2018
    Сообщения:
    20
    Симпатии:
    0
    хаха смешная шутка
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Причем здесь шутка? Ты используешь компонент вне пространства имен.
    ну хочешь добавь namespace
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.331
    Адрес:
    Лень
  6. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А в текущем GuzzleHttp вообще есть такой файлик? Ошибка там.
     
  7. maksivlev

    maksivlev Новичок

    С нами с:
    2 мар 2018
    Сообщения:
    20
    Симпатии:
    0
    Всем спасибо.
    Поправил так и заработало:
    PHP:
    1. require './classes/components/yandex/Guzzle/autoload.php';
    2. use Guzzle\Http\Client;
    3. .....
    4.  
    5. $this->client = new Client();
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Вы подключили guzzle 3.*, а пользуетесь как 6.*. Проблема в этом, а не в неймспейсах и классах.
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Протестую. Дело в неправильных неймспейсах. А за старый guzzle на костер.
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    - это >6.* версия.
    - это ~3 версия.

    В последних версиях guzzle сильно изменился, как внешне так и внутри. Потому они даже корневой неймспейс сменили, что бы не путали.
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Так автора на костер. За то что старый использует)
     
  12. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    и модеров, за то что топик в теме для профессионалов ))
     
  13. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    модеры уже и так жарко страдают)