31 lines
597 B
PHP
31 lines
597 B
PHP
<?php
|
|
|
|
namespace Nextend\Framework\Pattern;
|
|
|
|
trait OrderableTrait {
|
|
|
|
public function getOrdering() {
|
|
|
|
return isset($this->ordering) ? $this->ordering : 1000000;
|
|
}
|
|
|
|
/**
|
|
* @param OrderableTrait[] $items
|
|
*/
|
|
public static function uasort(&$items) {
|
|
uasort($items, array(
|
|
OrderableTrait::class,
|
|
'compare'
|
|
));
|
|
}
|
|
|
|
/**
|
|
* @param OrderableTrait $a
|
|
* @param OrderableTrait $b
|
|
*
|
|
* @return int
|
|
*/
|
|
public static function compare($a, $b) {
|
|
return $a->getOrdering() - $b->getOrdering();
|
|
}
|
|
} |