20250721 1.2 Бета 1

This commit is contained in:
2025-07-21 17:51:37 +03:00
parent 2c3ea12fc1
commit 04f6849ff4
12 changed files with 1162 additions and 147 deletions

View File

@@ -0,0 +1,37 @@
<?php
namespace goodboyalex\php_components_pack\interfaces;
/**
* Интерфейс, указывающий, что класс можно сортировать.
*
* @author Александр Бабаев
* @package freecms
* @version 0.1
* @since 1.2
*/
interface ISortable extends IHashable
{
/**
* Сортирует элементы класса.
*
* @param string $property Название свойства, по которому нужно отсортировать. Если пусто, то сортировка должна
* происходить по хешу. По умолчанию - пустая строка.
* @param bool $descending Направление сортировки: <code>true</code> - по убыванию, <code>false</code> - по
* возрастанию. По умолчанию - по возрастанию.
*
* @return void
*/
public function Sort (string $property = '', bool $descending = false): void;
/**
* Сортирует элементы класса по заданной функции.
*
* @param callable $propertyFunction Функция, возвращающая значение свойства для сортировки.
* @param bool $descending Направление сортировки: <code>true</code> - по убыванию, <code>false</code> - по
* возрастанию. По умолчанию - по возрастанию.
*
* @return void
*/
public function SortCallback (callable $propertyFunction, bool $descending = false): void;
}