Download the PHP package phpsoftbox/http-emitter without Composer

On this page you can find all versions of the php package phpsoftbox/http-emitter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package http-emitter

Http Emitter

Компонент выводит готовый PSR-7 response в PHP SAPI. Он устанавливает status line и заголовки, после чего потоково передаёт body клиенту.

Использование

Вызов emit() должен быть последним этапом обработки запроса. До него приложение не должно отправлять данные клиенту.

Статус и заголовки

Статус берётся из переданного response и сохраняется при отправке каждого заголовка. Это важно, например, для Inertia-ответа 409 Conflict с заголовком Location: PHP не заменит его автоматически на 302 Found.

Каждое значение PSR-7 заголовка отправляется отдельно. Поэтому несколько значений Set-Cookie не объединяются через запятую.

Первое значение каждого заголовка заменяет одноимённый заголовок, который PHP выставил до emit() (например, Content-Type по default_mimetype или header() в коде), остальные значения добавляются. Исключение — Set-Cookie: его значения всегда добавляются, поэтому cookie от setcookie() и session_start() не теряются.

Если PHP уже отправил заголовки, emitter выбросит HeadersAlreadySentException с доступным местом первого вывода. Продолжать эмиссию в такой ситуации небезопасно: status и заголовки response уже нельзя доставить клиенту.

Буфер вывода

Если перед emit() в буфере вывода (ob_start()) уже есть данные — echo, var_dump, выведенный notice, — emitter выбрасывает OutputAlreadySentException и ничего не отправляет. Иначе эти данные оказались бы в начале body и испортили бы ответ (например, JSON). Буфер emitter не очищает: вывод остаётся доступен для диагностики. Уберите лишний вывод или очистите буфер (ob_end_clean()) до вызова emit().

Body

Body читается из StreamInterface частями, поэтому файл или большой экспорт не загружается в память целиком. Seekable stream перед чтением перематывается в начало; non-seekable stream читается с текущей позиции.

Emitter не выводит body для статусов, которые его не допускают:

HEAD

Emitter не знает метод исходного запроса, поэтому для ответа на HEAD вызывающий код передаёт withoutBody: true:

В этом режиме отправляются status line и все заголовки response как есть (включая Content-Length, посчитанный для GET), а body не выводится. Router обслуживает HEAD GET-маршрутом и тело не очищает, поэтому HTTP application должно передавать этот флаг при эмиссии.


All versions of http-emitter with dependencies

PHP Build Version
Package Version
Requires php Version ^8.5
psr/http-message Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package phpsoftbox/http-emitter contains the following files

Loading the files please wait ...