Add interface "Sortable" defining how a result set can be sorted

This interface should be used to ensure that sorting a result set
is standardized among the different query implementations.
This commit is contained in:
Eric Lippmann 2014-04-15 16:07:27 +02:00
parent 3e0d254dfd
commit e5e3dc9c43

View File

@ -0,0 +1,48 @@
<?php
namespace Icinga\Data;
/**
* Interface for sorting a result set
*/
interface Sortable
{
/**
* Sort ascending
*/
const SORT_ASC = 'ASC';
/**
* Sort descending
*/
const SORT_DESC = 'DESC';
/**
* Sort result set by the given field (and direction)
*
* Preferred usage:
* <code>
* $query->order('field, 'ASC')
* </code>
*
* @param string $field
* @param int $direction
*
* @return self
*/
public function order($field, $direction = null);
/**
* Whether an order is set
*
* @return bool
*/
public function hasOrder();
/**
* Get the order if any
*
* @return array|null
*/
public function getOrder();
}