Entity types for Arris µFramework
Класс Result
$t = new \Arris\Entity\Result();
$t->setMessage("it works!");
$t->setData('foo', [
'a' => 5,
'b' => 7
])
->addData('foo', [
'c' => 2,
'd' => 4
])
->addMessage('xxx')
->addMessage('yyy')
->error('error')
->setCode(123);
var_dump(
$t->serialize()
);
Реализует методы:
- Основные:
__construct(bool $is_success = true, $message = null)
getIt():array
- Состояние результата:
setState(bool $is_success = true):Result
- Устанавливаем состояние (аналогично конструктору), но у экземпляра.getState():bool
- Возвращает состояние результатаsuccess(string $message = '', ...$args):Result
- Устанавливает признак: результат УСПЕШЕНerror(string $message = '', ...$args): Result
- Устанавливает признак: результат ОШИБОЧЕН.
- Одиночные ключи-свойства:
set($key, $value): Result
- Устанавливаем произвольный одиночный ключ-свойствоget($key = null, $default = null)
- Возвращает значение одиночного ключа-свойстваhas($key):bool
- Проверяет наличие одиночного ключа-свойства, сначала в списке свойств, потом в массиве данных
- Код результата:
setCode($code):Result
- Устанавливает цифровой код (может использоваться как код ошибки)getCode()
- Возвращает код
- Сообщения (messages):
setMessage(string $message = '', ...$args): Result
- Устанавливаем единичное сообщениеgetMessage():string
- Возвращаем единичное сообщениеaddMessage(string $message, ...$args): Result
- Добавляем сообщение к массиву сообщенийgetMessages(bool $implode = false, string $glue = ',', array $brackets = ['[', ']'])
- возвращает (отформатированный) массив сообщений,
- Данные (data как репозиторий DOT):
setData($keys, $value = null): Result
- Устанавливает данные в датасете, допустим путь через точкуaddData($keys, $value = null):Result
- Добавляет данные в датасет, допустим путь через точкуgetData($key = null, $default = null)
- Возвращает данные из датасета, допустим путь через точку
- Сериализация в JSON
serialize()
- Превращает результат в JSON-строкуasJSON()
- алиас
- Десериализация
- TODO (не проверена)
Хелпер для преобразования типа значения. Реальный смысл утерян.
$t = new \Arris\Entity\Value('123');
$t->toInt();
Я попросил нейросеть придумать, зачем может использоваться такой класс:
Класс Context, который вы предоставили, может использоваться в PHP для управления параметрами, которые могут быть использованы, например, при подготовке SQL-запросов или при работе с другими контекстами, где требуется связывание значений с уникальными именами параметров.
Давайте рассмотрим, как можно использовать этот класс, с примерами:
// Создание экземпляра класса Context
$context = new Context();
// Добавление параметров
$param1 = $context->parameter('value1'); // Возвращает ":p0"
$param2 = $context->parameter('value2'); // Возвращает ":p1"
$param3 = $context->parameter('value3'); // Возвращает ":p2"
// Выводим параметры, которые были привязаны
print_r($context->context());
После выполнения кода выше print_r($context->context())
выведет следующее:
Array
(
[p0] => value1
[p1] => value2
[p2] => value3
)
Применение в SQL-запросах
Вы можете использовать класс Context для безопасного связывания параметров в SQL-запросах, например, с использованием PDO:
// Вы можете использовать этот класс для подготовки SQL-запроса
$sql = "INSERT INTO users (username, email) VALUES ({$param1}, {$param2})";
// Теперь вам нужно будет подготовить и выполнить запрос
$stmt = $pdo->prepare($sql);
// Связываем значения с параметрами перед выполнением
$stmt->bindParam(':p0', $context->context()['p0']);
$stmt->bindParam(':p1', $context->context()['p1']);
// Выполняем запрос
$stmt->execute();
Вполне вероятно, что это можно делать и в цикле.