Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
BaseListItem.php
Содержимое
<?php namespace Visitka\Blocks\Items\Contracts; /** * Базовый класс для СЃРїРёСЃРєР° элементов (слайдер, новости Рё так далее) * Class ListItem * @package Visitka\Blocks\Contracts */ abstract class BaseListItem { public $id; public $position; /** * Таблица, РІ котороую записываем данные * @throws \Exception */ public static function table() { throw new \Exception("Переопределите метод ListItem::table() РІ дочернем классе элемента СЃРїРёСЃРєР°"); } /** * Создаем экземпляр класса РёР· массива, Рє примеру РёР· $_POST запроса. * @param array $item * @return static */ public static function getInstance(array $item) { $instance = new static(); foreach ($instance->mapping() as $key => $dbKey) { $instance->{$key} = array_key_exists($dbKey, $item) ? $item[$dbKey] : null; } $instance->initFromArray($item); $instance->validateOrFail(); return $instance; } /** * Маппинг данных РёР· класса РІ базу данных Рё наоборот * ```php * public function mapping() * { * return [ * // поле класса => поле РІ Р±Рґ * 'urlFragment' => 'url_fragment' * ]; * } * ``` * @return array */ public function mapping() { return []; } /** * Валидируем элемент СЃРїРёСЃРєР° */ public function validateOrFail() { foreach ($this->required() as $key => $message) { if (empty($this->{$key})) { throw new \DomainException($message); } } } /** * Ртот метод вызывается, РєРѕРіРґР° элемент класса восстанавливается РёР· массива * @param array $item */ protected function initFromArray(array $item) { } protected function required() { return []; } }
/visitka/src/Blocks/Items/Contracts/
Имя
Дата
Размер
..
2020-03-10
BaseListItem.php
2020-03-10
2 кб.
/visitka/src/Blocks/Items/Contracts
Загрузить файлы
Файл 1
Файл 2
Файл 3