Skip to content

Commit

Permalink
Измнения в коде по соглашению в написании кода. Добавление файла comp…
Browse files Browse the repository at this point in the history
…oser
  • Loading branch information
mepihindeveloper committed Mar 12, 2021
1 parent 568e018 commit d51bf4a
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 18 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/vendor/
38 changes: 37 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,38 @@
# php-headers
Компонент для работы с заголовками в PHP

Компонент для раб оты с заголовками в PHP

# Структура

```
src/
--- interfaces/
--- Headers.php
```

В директории `interfaces` хранятся необходимые интерфейсы, которые необходимо имплементировать в при реализации
собственного класса `Headers`.

Класс `Headers` реализует интерфейс `HeadersInterface` для управления заголовками.

# Доступные методы

| Метод | Аргументы | Возвращаемые данные | Исключения | Описание |
|---------------------|-----------------------------|---------------------|--------------------------|-----------------------------------------------------------------------------|
| set(array $params) | Заголовок(и) [key => value] | void | | Устанавливает заголовок(и) |
| add(array $params) | Заголовок(и) [key => value] | void | | Добавляет заголовок. Если заголовок уже существует, то он будет перезаписан |
| remove(string $key) | Заголовок | void | | Удаляет заголовок |
| removeAll | | void | | Удаляет все заголовки |
| has(string $key) | Заголовок | bool | | Проверяет наличие заголовка. Проверка идет на наличие ключа и значения |
| get(string $key) | Заголовок | string | InvalidArgumentException | Получает значение заголовка |
| getAll | | | | Получает все заголовки |

# Конакты

Вы можете связаться со мной в социальной сети ВКонтакте: [ВКонтакте: Максим Епихин](https://vk.com/maximepihin)

Если удобно писать на почту, то можете воспользоваться этим адресом: mepihindeveloper@gmail.com

Мой канал на YouTube, который посвящен разработке веб и игровых проектов: [YouTube: Максим Епихин](https://www.youtube.com/channel/UCKusRcoHUy6T4sei-rVzCqQ)

Поддержать меня можно переводом на Яндекс.Деньги: [Денежный перевод](https://yoomoney.ru/to/410012382226565)
28 changes: 28 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "mepihindeveloper/php-headers",
"description": "Component for working with headers",
"type": "library",
"license": "MIT",
"keywords": [
"component",
"class",
"php",
"headers"
],
"authors": [
{
"name": "mepihindeveloper",
"email": "mepihindeveloper@gmail.com"
}
],
"require": {
"php": "^7.4|^8.0"
},
"autoload": {
"psr-4": {
"mepihindeveloper\\components\\": "src/"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
39 changes: 22 additions & 17 deletions Headers.php → src/Headers.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

declare(strict_types = 1);

namespace mepihindeveloper\components;

use InvalidArgumentException;
use mepihindeveloper\components\interfaces\HeadersInterface;

/**
* Класс Headers
*
Expand All @@ -26,27 +31,26 @@ public function __construct()
*/
private function getAllHeaders(): array
{
if (!function_exists('getallheaders'))
if (function_exists('getallheaders')) {
return getallheaders() !== false ? getallheaders() : [];
}

if (!is_array($_SERVER))
{
if (!is_array($_SERVER))
{
return [];
}
$headers = [];
foreach ($_SERVER as $name => $value)
return [];
}

$headers = [];

foreach ($_SERVER as $name => $value)
{
if (strpos($name, 'HTTP_') === 0)
{
if (strpos($name, 'HTTP_') === 0)
{
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}

return $headers;
}

return getallheaders() !== false ? getallheaders() : [];
return $headers;
}

/**
Expand Down Expand Up @@ -91,6 +95,7 @@ public function remove(string $key): void {
*/
public function removeAll(): void {
$this->headers = [];

header_remove();
}

Expand All @@ -100,7 +105,7 @@ public function removeAll(): void {
public function has(string $key): bool {
$this->getAll();

return isset($this->headers[$key]);
return array_key_exists($key, $this->headers);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
<?php

declare(strict_types = 1);

namespace mepihindeveloper\components\interfaces;

use InvalidArgumentException;

/**
* Интерфейс HeadersInterface
*
Expand Down

0 comments on commit d51bf4a

Please sign in to comment.