Helper Class
Класс с набором полезных функций, по мнению автора. Не претендует на идеальность и единственное верное решение.
A class with a set of useful functions, according to the author. It does not pretend to be ideal and the only correct solution.
___
0. Установка
1. [include](#include)
Установка ¶
Run:
composer require --prefer-dist denisok94/helper
# or
php composer.phar require --prefer-dist denisok94/helper
or add to the require
section of your composer.json
file:
"denisok94/helper": "*"
composer update
# or
php composer.phar update
include ¶
Если вы скачали репозиторий архивом (zip/tar).
Можно создать в любом удобном месте своего приложения файл H.php
с классом H
и унаследовать его от Helper
.
include_once '{path to repository}/src/Helper.php';
use \denisok94\helper\Helper;
class H extends Helper {}
Использование ¶
use \denisok94\helper\Helper as H;
Можно создать в любом удобном месте своего приложения файл H.php
с классом H
и унаследовать его от Helper
.
Внутри класса H
добавить свои функции с повторяющемся действиями или перезаписать имеющиеся в Helper
.
namespace app\components;
use \denisok94\helper\Helper;
class H extends Helper {}
И в дальнейшем использовать его.
use app\components\H;
ArrayHelper ¶
Работа с массивами
Имя | Параметры | Описание |
---|---|---|
get | Найти в массиве по пути | |
set | Добавить/заменить элемент в массиве | |
parse | Заменить шаблон | |
implodeWrap | Объединяет элементы массива в строку + обернуть текст в кавычки | |
implodeWith | Объединяет элементы массива в строку, с предпользовательской обработкой | |
toJson | Преобразовать массив в json | |
toArray | Преобразовать json в массив | |
arrayOrderBy | Сортировка массива |
DataHelper ¶
Имя | Параметры | Описание |
---|---|---|
currentDate | Сегодняшняя дата | |
currentDt | Сегодняшняя дата и время | |
toMysqlDate | Преобразовать дату в формат Mysql | |
toMysqlDt | Преобразовать дату и время в формат Mysql | |
toRuDate | Русский формат даты | |
toRuDt | Русский формат даты и времени | |
stampToDt | Преобразовать timestamp в формат даты и времени | |
stampToDtU | Преобразовать timestamp в формат даты и времени с миллисекундами |
StringHelper ¶
Имя | Параметры | Описание |
---|---|---|
uuid | Сгенерировать uuid v4 | |
random | Сгенерировать рандомную строка | |
spell | падежи к числительным | |
slug | преобразовать строку в человекопонятный url | |
ru2Lat | Транслитирование, ГОСТ 7.79-2000, схема А | |
ruToLat | Транслитирование, ГОСТ 7.79-2000, схема Б | |
ru2Slug | преобразовать строку, на русском (схема А), в человекопонятный url | |
getClassName | Получить имя класса | |
slashes | экранирование |
FileHelper ¶
Работа с файлами
Имя | Параметры | Описание |
---|---|---|
ext | Получить расширение файла | |
fileRead | Показать содержимое файла | |
fileGetDt | Получить дату последнего изменения | |
fileType | Получить тип файла | |
fileIcon | Получить название иконки для файла | |
fileIconFa | Получить название иконки для файла в формате Font Awesome 4/5 | |
fileShortSize | короткий размер файла | |
shortSize | 2048 → 2.00 KB | |
parseSize | 2.00 KB → 2048 | |
dirSize | Получить размер папки |
HtmlHelper ¶
Генерация html тегов > в разработке...
Имя | Параметры | Описание |
---|---|---|
video | видео тег |
OtherHelper ¶
Имя | Параметры | Описание |
---|---|---|
curl | curl для большинства простых запросов | |
getRequest | параметры запроса | |
getUserIp | получить IP пользователя | |
isBot | Проверка пользователя на бота | |
msleep | уснуть на N секунд |
isBot() не даёт 100% гарантии. Кому разрешить/запретить доступ/функционал - решать исключительно Вам. Запрещая всё и всем, Вы можете лишится продвижения сайта в поисковых ресурсах и/или красивых привью в соц сетях =). ___
MicroTimer ¶
Узнать, сколько времени выполняется код
use \denisok94\helper\MicroTimer;
$queryTimer = new MicroTimer(); // start
// code ...
$queryTimer->stop();
// result:
$time = $queryTimer->elapsed();
// or/and
printf($queryTimer);
взято у phpliteadmin ___
Framework Integration ¶
Yii2 ¶
use \denisok94\helper\YiiHelper;
YiiHelper
наследует все от Helper
.
Имя | Параметры | Описание |
---|---|---|
exec | Выполнить консольную команду | |
log | Записать данные в лог файл. Файлы хранятся в runtime/logs/ | |
setCache | Запомнить массив в кэш | |
getCache | Взять массив из кэша | |
clearCache | Удалить кэш |
Можно создать в папке components
файл H.php
с классом H
и унаследовать его от YiiHelper
.
Внутри класса H
добавить свои функции с повторяющемся действиями или перезаписать имеющиеся в YiiHelper
.
namespace app\components;
use \denisok94\helper\YiiHelper;
class H extends YiiHelper {}
И в дальнейшем использовать его.
use app\components\H;
В кэш можно сохранить результат запроса из бд, который часто запрашивается, например для фильтра. К тому же, этот фильтр, может быть, использоваться несколько раз на странице или сама страница с ним, может, многократно обновляться/перезагружаться.
use app\components\H;
class Filter
{
//.....
/**
* @return array
*/
public static function getTypes()
{
$types = H::getCache('types'); // dir: app/cache/types.json
if ($types) {
return $types;
} else {
$types = \app\models\Types::find()
->select(['id', 'name'])
->asArray()
->all();
$array = [];
foreach ($types as $key => $value) {
$array[$value['id']] = ucfirst($value['name']);
}
H::setCache('types', $array);
return $array;
}
}
}
MetaTag ¶
Генерация мета тегов.
use \denisok94\helper\yii2\MetaTag;
Пока, реализованы простые теги, позже, доработаю остальные.
Имя | Параметры | Описание |
---|---|---|
tag | Установить MetaTag на страницу |
Указываются в action
контроллере, перед render()
.
`
php
namespace app\controllers;
use \denisok94\helper\yii2\MetaTag;
class NewsController extends Controller {
// ...
public function actionView($id)
{
$model = $this->findModel($id);
MetaTag::tag($this->view, [
'title' => $model->title,
'description' => substr($model->text, 0, 100),
'keywords' => $model->tags, // string
'image' => $model->image->url,
]);
return $this->render('view', [
'model' => $model,
]);
}
// ...
}
`
___
StatusController ¶
Для общения по формату json. (REST API)
namespace app\controllers;
use \denisok94\helper\yii2\StatusController;
class MyController extends StatusController
{
// code
}
// получить всё сообщение полностью
$message = $this->post;
// получить параметр из сообщения
$phone = $this->getPost('phone');
Сообщить об успехе
// Сообщить об успешной обработки
return $this->success(); // ['status' => 'OK', 'data' => []];
// Вернуть результат работы
return $this->success($data); // ['status' => 'OK', 'data' => $data];
Сообщить об ошибке
\Yii::$app->response->statusCode = 400; // or status http code
return $this->error($error, $text, $data); // ['status' => 'FAIL', ...]
Собственный формат ответа
`
php
// custom responses
$responses = [];
// code
return $this->send($responses);
`
___
ConsoleController ¶
namespace app\commands;
use \denisok94\helper\yii2\ConsoleController;
class MyController extends ConsoleController
{
// code
}
Вызвать action
консольного контроллера:
`
php
H::exec('сontroller/action', [params]);
`
> Консольный контроллер, не подразумевает ответ.
Вся выводящая информация (echo, print и тд) будет записана в лог файл.
При вызове через H::exec()
, по умолчанию логи находятся в /runtime/logs/consoleOut.XXX.log
(можно переопределить)
Получить переданные параметры
`
php
$init = $this->params;
`
Пример:
`
php
class MyController extends ConsoleController
{
public function actionTest()
{
$init = $this->params;
$test = $this->params['test'];
}
}
H::exec('my/test', ['test' => 'test']);
`