Skip to content
AntonShevchuk edited this page Nov 6, 2014 · 7 revisions

Описание

Пакет, который объединяет в себе следующие классы:

  • Http\Request - наследник AbstractRequest
  • Http\Response - наследник AbstractResponse
  • Http\CacheControl - расширение для формирования заголовков для работы с механизмом кеширования
  • Http\File - обёртка для работы с загружаемым файлом
  • Http\FileUpload - обработчик загружаемых файлов

Настройки

Нет

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

Http\Request

Функционал аналогичен Request, расширен следующими функциями:

// return http|https
$Request->getScheme();
// get request method GET/POST/PUT/DELETE
$Request->getMethod();
// get $_GET data
$Request->getQuery($key, $default);
// get $_POST data
$Request->getPost($key, $default);
 
$Request->getCookie($key, $default);
$Request->getServer($key, $default);
$Request->getEnv($key, $default);
 
$Request->getHeader($header);
$Request->getHttpHost();
 
$Request->setBaseUrl($baseUrl);
$Request->getBaseUrl();

$Request->getClientIp($checkProxy = true);
 
// return bool
$Request->isXmlHttpRequest();
// return bool
$Request->isFlashRequest();

Http\Response

Функционал аналогичен Response

Http\CacheControl

с версии 0.8.0

Для использования данного класса следует использовать соответствующий Proxy - HttpCacheControl:

use \Bluz\Proxy\HttpCacheControl;

HttpCacheControl::setPublic();
HttpCacheControl::setSharedMaxAge(3600);
HttpCacheControl::setLastModified(new \DateTime('2014-02-20 13:42:00'));

В результате выполнения данного скрипта в заголовки будет добавлена соответствующая запись:

Cache-Control: public, s-max-age=3600
Last-Modified: Wed, 20 Feb 2014 13:42:00 GMT

Http\FileUpload

Пример формы для аплоада картинки:

<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="avatar" accept="image/*" required />
    <button type="submit">Upload</button>
</form>

Пример получения файла из запроса:

$fileUpload = $this->getRequest()->getFileUpload();
$file = $fileUpload -> getFile('avatar'); // return HttpFile

/* protected
$file->name; // myFace
$file->ext;  // jpg
$file->type; // images/jpeg // finfo::file($this->tmp_name, FILEINFO_MIME_TYPE);
$file->size; // 23 000
*/

$file->getSize();     // = 23 000
$file->getSize('kb'); // = 23 000 / 1024
$file->getSize('mb'); // = 23 000 / (1024 * 1024)

if (!$file->hasError() && $file -> isImage()) {
    $file -> setName("avatar");
    $file -> moveTo('/path/to/save'); // save as /path/to/save/avatar.jpg
}

$files = $fileUpload -> getFiles('photos'); // return array
foreach ($files as $file) {
    // logic similar to prevous example
}

Clone this wiki locally