37 lines
1.6 KiB
PHP

<?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;
}