37 lines
1.6 KiB
PHP
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;
|
|
} |