Skip to content

Commit d51bf4a

Browse files
Измнения в коде по соглашению в написании кода. Добавление файла composer
1 parent 568e018 commit d51bf4a

File tree

5 files changed

+93
-18
lines changed

5 files changed

+93
-18
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/vendor/

README.md

+37-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,38 @@
11
# php-headers
2-
Компонент для работы с заголовками в PHP
2+
3+
Компонент для раб оты с заголовками в PHP
4+
5+
# Структура
6+
7+
```
8+
src/
9+
--- interfaces/
10+
--- Headers.php
11+
```
12+
13+
В директории `interfaces` хранятся необходимые интерфейсы, которые необходимо имплементировать в при реализации
14+
собственного класса `Headers`.
15+
16+
Класс `Headers` реализует интерфейс `HeadersInterface` для управления заголовками.
17+
18+
# Доступные методы
19+
20+
| Метод | Аргументы | Возвращаемые данные | Исключения | Описание |
21+
|---------------------|-----------------------------|---------------------|--------------------------|-----------------------------------------------------------------------------|
22+
| set(array $params) | Заголовок(и) [key => value] | void | | Устанавливает заголовок(и) |
23+
| add(array $params) | Заголовок(и) [key => value] | void | | Добавляет заголовок. Если заголовок уже существует, то он будет перезаписан |
24+
| remove(string $key) | Заголовок | void | | Удаляет заголовок |
25+
| removeAll | | void | | Удаляет все заголовки |
26+
| has(string $key) | Заголовок | bool | | Проверяет наличие заголовка. Проверка идет на наличие ключа и значения |
27+
| get(string $key) | Заголовок | string | InvalidArgumentException | Получает значение заголовка |
28+
| getAll | | | | Получает все заголовки |
29+
30+
# Конакты
31+
32+
Вы можете связаться со мной в социальной сети ВКонтакте: [ВКонтакте: Максим Епихин](https://vk.com/maximepihin)
33+
34+
Если удобно писать на почту, то можете воспользоваться этим адресом: mepihindeveloper@gmail.com
35+
36+
Мой канал на YouTube, который посвящен разработке веб и игровых проектов: [YouTube: Максим Епихин](https://www.youtube.com/channel/UCKusRcoHUy6T4sei-rVzCqQ)
37+
38+
Поддержать меня можно переводом на Яндекс.Деньги: [Денежный перевод](https://yoomoney.ru/to/410012382226565)

composer.json

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"name": "mepihindeveloper/php-headers",
3+
"description": "Component for working with headers",
4+
"type": "library",
5+
"license": "MIT",
6+
"keywords": [
7+
"component",
8+
"class",
9+
"php",
10+
"headers"
11+
],
12+
"authors": [
13+
{
14+
"name": "mepihindeveloper",
15+
"email": "mepihindeveloper@gmail.com"
16+
}
17+
],
18+
"require": {
19+
"php": "^7.4|^8.0"
20+
},
21+
"autoload": {
22+
"psr-4": {
23+
"mepihindeveloper\\components\\": "src/"
24+
}
25+
},
26+
"minimum-stability": "dev",
27+
"prefer-stable": true
28+
}

Headers.php renamed to src/Headers.php

+22-17
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
declare(strict_types = 1);
44

5+
namespace mepihindeveloper\components;
6+
7+
use InvalidArgumentException;
8+
use mepihindeveloper\components\interfaces\HeadersInterface;
9+
510
/**
611
* Класс Headers
712
*
@@ -26,27 +31,26 @@ public function __construct()
2631
*/
2732
private function getAllHeaders(): array
2833
{
29-
if (!function_exists('getallheaders'))
34+
if (function_exists('getallheaders')) {
35+
return getallheaders() !== false ? getallheaders() : [];
36+
}
37+
38+
if (!is_array($_SERVER))
3039
{
31-
if (!is_array($_SERVER))
32-
{
33-
return [];
34-
}
35-
36-
$headers = [];
37-
38-
foreach ($_SERVER as $name => $value)
40+
return [];
41+
}
42+
43+
$headers = [];
44+
45+
foreach ($_SERVER as $name => $value)
46+
{
47+
if (strpos($name, 'HTTP_') === 0)
3948
{
40-
if (strpos($name, 'HTTP_') === 0)
41-
{
42-
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
43-
}
49+
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
4450
}
45-
46-
return $headers;
4751
}
4852

49-
return getallheaders() !== false ? getallheaders() : [];
53+
return $headers;
5054
}
5155

5256
/**
@@ -91,6 +95,7 @@ public function remove(string $key): void {
9195
*/
9296
public function removeAll(): void {
9397
$this->headers = [];
98+
9499
header_remove();
95100
}
96101

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

103-
return isset($this->headers[$key]);
108+
return array_key_exists($key, $this->headers);
104109
}
105110

106111
/**

interfaces/HeadersInterface.php renamed to src/interfaces/HeadersInterface.php

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
<?php
2+
23
declare(strict_types = 1);
34

5+
namespace mepihindeveloper\components\interfaces;
6+
7+
use InvalidArgumentException;
8+
49
/**
510
* Интерфейс HeadersInterface
611
*

0 commit comments

Comments
 (0)