20250721 1.2 Бета 1
This commit is contained in:
43
sources/interfaces/IComparable.php
Normal file
43
sources/interfaces/IComparable.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\interfaces;
|
||||
|
||||
/**
|
||||
* Интерфейс, указывающий, что класс можно сравнивать.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package freecms
|
||||
* @version 0.1
|
||||
* @since 1.2
|
||||
*/
|
||||
interface IComparable
|
||||
{
|
||||
/**
|
||||
* Сравнивает объекты текущего класса с другим, переданным в <code>$other</code>.
|
||||
*
|
||||
* @param mixed $other Второй класс для сравнения.
|
||||
*
|
||||
* @return int Возвращает результат сравнения. <code>0</code>, если GUID равны, <code>-1</code>, если текущий GUID
|
||||
* меньше, чем второй и <code>1</code>, если текущий GUID больше другого.
|
||||
*/
|
||||
public function CompareTo (mixed $other): int;
|
||||
|
||||
/**
|
||||
* Сравнивает на равенство текущий класс с другим, переданным в <code>$other</code>.
|
||||
*
|
||||
* @param mixed $other Второй класс для сравнения.
|
||||
*
|
||||
* @return bool Результат сравнения: <code>true</code>, если оба класса равны и <code>false</code>, если нет.
|
||||
*/
|
||||
public function IsEqualsTo (mixed $other): bool;
|
||||
|
||||
/**
|
||||
* Сравнение объектов по указанному свойству.
|
||||
*
|
||||
* @param string $propertyName Название свойства для сравнения.
|
||||
* @param mixed $other Объект для сравнения.
|
||||
*
|
||||
* @return int Результат сравнения: <code>-1</code>, <code>0</code> или <code>1</code>.
|
||||
*/
|
||||
public function CompareByProperty (string $propertyName, mixed $other): int;
|
||||
}
|
21
sources/interfaces/IHashable.php
Normal file
21
sources/interfaces/IHashable.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\interfaces;
|
||||
|
||||
/**
|
||||
* Интерфейс, указывающий, что у класса можно получить хэш.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package freecms
|
||||
* @version 0.1
|
||||
* @since 1.2
|
||||
*/
|
||||
interface IHashable
|
||||
{
|
||||
/**
|
||||
* Возвращает хеш-значение класса.
|
||||
*
|
||||
* @return string Хеш-значение класса.
|
||||
*/
|
||||
public function Hash (): string;
|
||||
}
|
37
sources/interfaces/ISortable.php
Normal file
37
sources/interfaces/ISortable.php
Normal 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;
|
||||
}
|
Reference in New Issue
Block a user