PHPackages                             codememory/screw - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. codememory/screw

ActiveLibrary[Framework](/categories/framework)

codememory/screw
================

Component for sending Http RequestAuthor

v2.0(5y ago)0631MITPHPPHP &gt;= 7.1

Since Dec 19Pushed 4y ago1 watchersCompare

[ Source](https://github.com/codememory1/Screw)[ Packagist](https://packagist.org/packages/codememory/screw)[ RSS](/packages/codememory-screw/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (1)Versions (10)Used By (1)

HTTP Screw
==========

[](#http-screw)

> **HTTP Screw** - *это интерфейс пакета Guzzle, который упрощает создание запросов используя ООП*

[![License](https://camo.githubusercontent.com/135a2f4fcf08d6f459703499b7bbcbfa7fd856d0d0d2c405639a59d0eb048467/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f636f64656d656d6f72792f687474702d73637265773f6c6f676f3d4c6963656e7365267374796c653d706c6173746963)](https://camo.githubusercontent.com/135a2f4fcf08d6f459703499b7bbcbfa7fd856d0d0d2c405639a59d0eb048467/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f636f64656d656d6f72792f687474702d73637265773f6c6f676f3d4c6963656e7365267374796c653d706c6173746963)[![Code Size](https://camo.githubusercontent.com/1dd05100d2855523f1b7f8796951462117af754e40b13791b1604f8eabc1e3a7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f636f64656d656d6f7279312f53637265773f636f6c6f723d253233303461656631266c6f676f3d436f646525323073697a65267374796c653d706c6173746963)](https://camo.githubusercontent.com/1dd05100d2855523f1b7f8796951462117af754e40b13791b1604f8eabc1e3a7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f636f64656d656d6f7279312f53637265773f636f6c6f723d253233303461656631266c6f676f3d436f646525323073697a65267374796c653d706c6173746963)[![Packagist](https://camo.githubusercontent.com/7da46f516b8549467a9eb42956ae86e793de4bd4305d2b2c7c17037682e2188e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f64656d656d6f72792f687474702d73637265772e7376673f6d61784167653d32353932303030267374796c653d706c6173746963)](https://camo.githubusercontent.com/7da46f516b8549467a9eb42956ae86e793de4bd4305d2b2c7c17037682e2188e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f64656d656d6f72792f687474702d73637265772e7376673f6d61784167653d32353932303030267374796c653d706c6173746963)

Установка
=========

[](#установка)

```
composer require codememory/http-screw

```

Документация
============

[](#документация)

- #### [Опции](#list-options)

    [](#опции)

    - [RedirectOption](#Redirect-Option)
    - [AuthorizationOption](#Auth-Option)
    - [TimeoutOption](#Timeout-Option)
    - [SSL Cert](#SSL-Cert-Option)
    - [ProxyOption](#Proxy-Option)
    - [ParamsOption](#Params-Option)
    - [HeadersOption](#Headers-Option)
    - [HttpOption](#Http-Option)
    - [ProgressOption](#Progress-Option)
- #### [Request Методы](#Request-Method)

    [](#request-методы)
- #### [Response Методы](#Response-Method)

    [](#response-методы)

Request Методы
========================================================

[](#request-методы-1)

- `baseUrl(): HttpRequest` Добавить URL в клиент. И тогда в `setUrl()` можно просто передать ссылку

    - > *string* **$url** (*default*: null)
- `setUrl(): HttpRequest` Добавить URL на который будет сделан запрос

    - > *string* **$url** (*default*: null)
- `addPort(): HttpRequest` Добавить ПОРТ к URL

    - > *integer* **$port** (*default*: null)
- `setMethod(): HttpRequest` Метод запроса \[ **GET|POST|PUT|DELETE|UPDATE** \]

    - > *string* **$method** (*default*: GET)
- `clientOptions(): HttpRequest` Следующее указаные опции добавить в клиент. Которые будут по умолчанию

    - > *boolean* **$status** (*default*: false)
- `option(): HttpRequest` Добавить опцию к запросу

    - > *string* **$option** (*default*: null)
    - > *callable* **$callback** (*default*: None): $option

        - > *object* **$option** (*default*: $option)
- `processResponseCode(): HttpRequest` Обработать **HTTP**-код

    - > *callable* **$callback** (*default*: None)

        - > *Response* **$response** (*default*: $response)
    - > *integer* **$code** (*default*: 200)
- `refuser(): HttpRequest` Обработать ошибку запроса. Это может быть ошибка **connect** и прочее

    - > *callable* **$callback** (*default*: None)

        - > *RequestException* **$e** (*default*: $e)
- `addBody(): HttpRequest` Отправить Body

    - > *string* **$body** (*default*: None)
- `addJson(): HttpRequest` Загрузка данных в кодировке JSON в качестве тела запроса. Заголовок Content-Type `application/json` будет добавлен, если в сообщении уже нет заголовка Content-Type.

    - > *mixed* **$data** (*default*: None)
- `saveBody(): HttpRequest` Добавить Путь, где будет сохранен **body** ответ
- `send(): HttpRequest` Метод отправляет запрос на указанный URL
- `response(): GuzzleResponse` Возрощает Response пакета Guzzle

Опции и их компоненты
=============================================================

[](#опции-и-их-компоненты)

###  Redirect

[](#-redirect)

```
> HttpRequest::O_REDIRECT

```

- `redirect()` Разришение Перенаправлений

    - > *boolean* **$performRedirects** (*default*: false)
- `numberRedirects()` Кол-во Перенаправлений

    - > *integer* **$redirects** (*default*: 5)
- `strictRedirect()` Строгие Перенаправления

    - > *boolean* **$strictly** (*default*: false)
- `addRefererOnRedirect()` Разрешить добавление заголовка referer при обноружении перенаправления

    - > *boolean* **$allowDispatch** (*default*: true)
- `redirectHandler()` Обработчик при обнаружении перенаправления

    - > *object|callable* **$allowDispatch** (*default*: null)
- `allowProtocols()` Добавить разрешенные протоколы

    - > *string* **...$args** (*default*: \[http, https\])

###  Authorization

[](#-authorization)

```
> HttpRequest::O_AUTH

```

- `username()` Имя пользователя

    - > *string|integer* **$username** (*default*: null)
- `password()` Пароль пользователя

    - > *string|integer* **$password** (*default*: null)
- `type()` Тип аутификации \[***basic*, *digest*, *ntlm***\]

    - > *string* **$type** (*default*: null)
- `disable()` Отключить аутификацию

    - > None (*default*: true(On))
- `enable()` Включить аутификацию

    - > None (*default*: true(On))

###  Timeout(сек)

[](#-timeoutсек)

```
> HttpRequest::O_TIMEOUT

```

- `connectionTime()` Время подключения к серверу

    - > *integer|float* **$time** (*default*: 0)
- `requestTime()` Время запроса

    - > *integer|float* **$time** (*default*: 0)
- `readTime()` Время использования при чтении потокового тела

    - > *integer|float* **$time** (*default*: default\_socket\_timeout of php.ini)

###  SSL Cert

[](#-ssl-cert)

```
> HttpRequest::O_SSL

```

- `certificate()` Путь к файлу, содержащему сертификат в формате PEM

    - > *string* **$pathCertificate** (*default*: None)
    - > *string|null* **$password** (*default*: null)
- `key()` Путь к файлу, содержащему закрытый ключ SSL в формате PEM

    - > *string* **$pathCertificate** (*default*: None)
    - > *string|null* **$password** (*default*: null)
- `verify()` Включить проверку SSL или Установить путь к собственому сертификату на диске

    - > *boolean|string* **$pathOrStatus** (*default*: true)

###  Proxy

[](#-proxy)

```
> HttpRequest::O_PROXY

```

- `setProxy()` Добавить прокси с определенным протоколом

    - > *string* **$proxy** (*default*: null) - URL-адрес прокси
    - > *string|null* **$protocol** (*default*: None) - Протокол прокси
- `username()` Имя пользователя

    - > *string* **$username** (*default*: None) - Пример с именем пользователя \[http://username:password@127.0.0.1:80\]
- `password()` Пароль пользователя

    - > *string* **$password** (*default*: None)
- `setUser()` Объединение методов `username()` и `password()`

    - > *string* **$username** (*default*: None)
    - > *string* **$password** (*default*: None)
    - > *boolean* **$forAllAddresses** (*default*: false) - Добавить ко всем следующим **URL-адресам** **имя пользователя** и **пароль**
- `preventProxy()` Добавить имена хостов, которые не следует проксировать

    - > *string* **...$args** (*default*: None)

###  Params

[](#-params)

> HttpRequest::O\_PARAMS

- `form()` Передать **POST** данные, если метод запроса **POST**

    - > *array* **$data** (*default*: None)
- `query()` Передать **GET** данные, если метод запроса **GET**

    - > *array* **$data** (*default*: None)
- `withFiles(): ParamsOption` Отправить файлы. **Не работает вместе с методом `form()`**

    - > *string* **$inputName** (*default*: None)
    - > *mixed **NOT** null* **$contents** (*default*: None) - Данные для использования в элементе формы.
    - > *?string* **$filename** (*default*: Null)
    - > *?array* **$headers** (*default*: \[\])

###  Headers

[](#-headers)

> HttpRequest::O\_HEADERS

- `decodeContent(): HeadersOption` Укажите, будут ли `Content-Encoding` ответы (gzip, deflate и т. Д.) Автоматически декодироваться.
    - > *string|boolean* **$decode** (*default*: true)
- `header()` Добавить заголовок
    - > *string* **$name** (*default*: None)
    - > *mixed* **$value** (*default*: None)
- `onHeaders()` Вызываемый объект, который вызывается, когда HTTP-заголовки ответа получены, но тело еще не начало загружаться.
    - > *callable* **$callback** (*default*: None)

        - > *Response* **$response** (*default*: Response)
- `expect()` Управляет поведением заголовка «Expect: 100-Continue».
    - > *integer|boolean* **$rule** (*default*: 1048576)

###  Http

[](#-http)

> HttpRequest::O\_HTTP

- `setVersion()` Установить версию протокола
    - > *integer|float* **$version** (*default*: 1.1)
- `stream()` Установить потоковою передачу ответа, а не для загрузки сразу
    - > *boolean* **$status** (*default*: false)
- `idnConversion()` Поддержка интернационализированных доменных имен (IDN) (включена по умолчанию, если `intl` расширение доступно).
    - > *integer|boolean* **$support** (*default*: true or false)
- `httpExceptions()` Выдача исключений по **HTTP-code**
    - > *boolean* **$status** (*default*: true)
- `ipVersion()` Установить версию IP
    - > *string* **$version** (*default*: None)
- `stats()` Позволяет получить доступ к статистике передачи запроса и доступ к деталям передачи нижнего уровня обработчика, связанного с вашим клиентом.
    - > *callable* **$callback** (*default*: None)

        - > *TransferStats* **$stats** (*default*: TransferStats)
- `sync()` Сообщить обработчикам HTTP, что вы собираетесь ожидать ответ. Это может быть полезно для оптимизации
    - > *boolean* **$status** (*default*: None)

###  Progress

[](#-progress)

> HttpRequest::O\_PROGRESS

- `progress()` Определяет функцию, вызываемую при выполнении передачи.
    - > *callable* **$callback** (*default*: None)

        - > *integer* **$downloadTotal** (*default*: 0) - общее количество байтов, ожидаемых к загрузке, ноль, если неизвестно
        - > *integer* **$downloadedBytes** (*default*: 0) - количество байтов, загруженных на данный момент
        - > *integer* **$uploadTotal** (*default*: 0) - общее количество байтов, которые должны быть загружены
        - > *integer* **$uploadedBytes** (*default*: 0) - количество байтов, загруженных на данный момент

###  Response Методы

[](#-response-методы)

- `responseType()` Преоброзовать ответ Body в ТИП:

    - > *integer* **$type** (*default*: String(4))
        > `Response::RESPONSE_JSON`
        > `Response::RESPONSE_ARRAY`
        > `Response::RESPONSE_OBJECT`
        > `Response::RESPONSE_STRING`
- `getBody()` Получить Body ответа
- `getHttpCode()` Получить **HTTP-код**
- `getResponseGuzzle(): GuzzleResponse` Вернуть обьект класса `GuzzleResponse`
- `__call()` Другие методы из обьекта `GuzzleResponse` **[Подробнее](https://docs.guzzlephp.org/)**

### Отправка запроса

[](#отправка-запроса)

```
 use Codememory\Screw\HttpRequest;

 $httpRequest = new HttpRequest();

 $response = $httpRequest
        ->setUrl('http://example.com/') // Url запроса
        ->setMethod('GET') // Метод запроса
        ->send();
```

### Запрос с опциями

[](#запрос-с-опциями)

```
 $httpRequest
    ->setUrl('http://example.com/')
    ->setMethod('GET')
    ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect):  RedirectOption {
        $redirect
            ->redirect(true);

        return $redirect;
    })
    ->send();
```

### Пример использования несколько опций и их компоненты:

[](#пример-использования-несколько-опций-и-их-компоненты)

```
 $httpRequest
    ->setUrl('http://example.com/')
    ->setMethod('GET')
    ->option(HttpRequest::O_REDIRECT, function(RedirectOption $redirect): RedirectOption {
        $redirect
            ->redirect(true)
            ->allowProtocols('http');

        return $redirect;
    })
    ->option(HttpRequest::TIMEOUT, function(TimeoutOption $timeout): TimeoutOption {
        $timeout
            ->delay(4)
            ->requestTime(5);

        return $timeout;
    })
    ->send();
```

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Total

3

Last Release

1977d ago

Major Versions

v1.1 → v2.02021-02-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/4f0d8298c7a2a11b533d914c47247df660c778a99fb682320df53be7b42d941a?d=identicon)[codememory1](/maintainers/codememory1)

---

Top Contributors

[![codememory1](https://avatars.githubusercontent.com/u/67295802?v=4)](https://github.com/codememory1 "codememory1 (37 commits)")

---

Tags

httprequestpsr-7clientframeworkrestcurlhttp clientweb servicepsr-18

### Embed Badge

![Health badge](/badges/codememory-screw/health.svg)

```
[![Health](https://phpackages.com/badges/codememory-screw/health.svg)](https://phpackages.com/packages/codememory-screw)
```

###  Alternatives

[guzzlehttp/guzzle

Guzzle is a PHP HTTP client library

23.5k1.0B35.3k](/packages/guzzlehttp-guzzle)[eightpoints/guzzle-wsse-middleware

WSSE Middleware for Guzzle, a PHP HTTP client library and framework for building RESTful web service clients

312.1M5](/packages/eightpoints-guzzle-wsse-middleware)[gregurco/guzzle-bundle-oauth2-plugin

OAuth2 Plugin for Guzzle Bundle, a PHP HTTP client library and framework for building RESTful web service clients

13360.4k](/packages/gregurco-guzzle-bundle-oauth2-plugin)[gregurco/guzzle-bundle-cache-plugin

Cache Plugin for Guzzle Bundle, a PHP HTTP client library and framework for building RESTful web service clients

11400.9k1](/packages/gregurco-guzzle-bundle-cache-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
