Задать вопрос
@dk-web

Существует ли альтернатива Guzzle для запросов к внешним api или как его верно подключить в свой пакет?

Собственно сабж...
У меня уже спортивный интерес... мощный фреймворк, но для каждой итерации нужно еще кучу всего установить зачастую друг с другом не совместимых((

Задача банальная до невозможности - послать get запрос в стороннее api и получить ответ.

Получилось только через Guzzle. Но при его установке еще мегабайт на 20 всякого шлака установилось...

Update:
Ежели альтернативы нет... то как подключить этот Guzzle только к своему пакету?
1) Добавил в require composer.json
2) composer update
3) далее нужно прописать require 'vendor/autoloader.php'; - куда??

Может нужно что-то еще в app/config.php дописывать?

Сейчас структура следующая
packages:
  dkweb
    mypackage
      src
         http
            Controllers
                RestClient.php
         MypackageServiceProvider.php
      vendor
         guzzlehttp
      config
      composer.json

<?php
namespace Dkweb\Mypackage\Http\Controllers;

use GuzzleHttp\Client;
class RestClient
{
protected function request($apiCall, $params = array())
    {
        $client = new Client([
            'base_uri' => $this->apiUrl.$apiCall
        ]);
        return $client->request('GET','?Id=48&appKey=60');
    }
}


FatalErrorException in RestClient.php line :
Class 'GuzzleHttp\Client' not found
  • Вопрос задан
  • 2713 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@rsi
software engineer
У меня уже спортивный интерес... мощный фреймворк, но для каждой итерации нужно еще кучу всего установить зачастую друг с другом не совместимых


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

Существует ли альтернатива Guzzle для запросов к внешним api


Разумеется, Guzzle это обертка над штатным CURL, не хотите использовать удобный Guzzle, пишите запросы на CURL руками, если 20мб для вас так критичны и подвод не использовать удобный пакет, то это ваш выбор.

Ежели альтернативы нет... то как подключить этот Guzzle только к своему пакету?


К какому своему пакету? Вы пишите не приложение на laravel А пакет для него?
Но в любом случае почитайте про зависимости и о том как работает composer.

Подключение в laravel выглядит так:
1) Добавить в require composer.json
2) composer update
3) можно пользоваться
В классе где вы хотите использовать Guzzle подключаете неймспейсы, например use GuzzleHttp\Client и все работает, если не работает то вы где то ошиблись (хотя в двух простых шагах тяжело ошибиться) и надо смотреть ваш код.

Если вы разрабатываете свой пакет, то собственно надо смотреть как вы делаете. Но в целом, ситуация мало чем отличается. Основное отличие, что его нужно добавлять в composer.json пакета, а не приложения
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vanchelo
@vanchelo
Простейшие GET запросы можно осуществлять через
file_get_contents('http://example.com');

Если нужно что-то удобнее и настраиваемое, есть хороший и интуитивный пакет nategood/httpful
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы