mepihindeveloper/php-query-string

Component for working with query string

v1.0.4 2022-10-10 11:15 UTC

This package is auto-updated.

Last update: 2024-12-10 16:05:40 UTC


README

release Packagist Version PHP Version Require license

build codecov

Компонент для работы со строкой запроса. Основной функционал направлен на формирование строки запроса посредством реализации шаблона проектирования "Строитель". Строка запроса - то, что находится в URI после ?.

Структура

src/
--- exceptions/
------ QueryStringNotFoundException.php
--- interfaces/
------ QueryStringInterface.php
--- QueryString.php
--- QueryStringAbstract.php
--- QueryStringBuilder.php

В директории interfaces хранятся необходимые интерфейсы, которые необходимо имплементировать в при реализации собственного класса QueryString. Класс QueryString выступает в качестве объекта строки запроса. В директории exceptions хранятся необходимые исключения. Исключение QueryStringNotFoundException необходимо для идентификации ошибки отсутствия необходимых ключей.

Класс QueryString реализует саму строку запроса. Собственные классы параметры должны наследоваться от класса QueryString.

Класс QueryStringAbstract реализует общую логику для всех строк запроса. В данном случае, хранит в себе необходимые свойства объектов.

Класс QueryStringBuilder реализует логику формирования объекта класса QueryString.

Примерная реализация формирования параметра:

<?php

declare(strict_types = 1);

use mepihindeveloper\components\query\param\ParamBuilder;
use mepihindeveloper\components\query\QueryStringBuilder;

error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');

require_once 'vendor/autoload.php';

$uri = 'foo://example.com:8042/over/there?name=ferret&a[]=11&a[]=22#nose';
$query = (new QueryStringBuilder())->setQueryDataByUri($uri)->build();
$query2 = (new QueryStringBuilder())->setParams([
    (new ParamBuilder())->setName('name')->setValue('ferret')->build(),
    (new ParamBuilder())->setName('a')->setValue([11, 22])->build(),
])->setFragment('nose')->build();

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

QueryStringInterface

QueryStringBuilder

Контакты

Вы можете связаться со мной в социальной сети ВКонтакте: ВКонтакте: Максим Епихин

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

Мой канал на YouTube, который посвящен разработке веб и игровых проектов: YouTube: Максим Епихин

Поддержать меня можно переводом на Яндекс.Деньги: Денежный перевод