AthensFramework/core

View on GitHub
src/orm-wrapper/QueryWrapperInterface.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Athens\Core\ORMWrapper;

interface QueryWrapperInterface extends ORMWrapperInterface
{
    const CONDITION_NOT_EQUAL = 'not equal';
    const CONDITION_EQUAL = 'equal';
    const CONDITION_GREATER_THAN = 'greater';
    const CONDITION_GREATER_THAN_OR_EQUAL = 'greater or equal';
    const CONDITION_LESS_THAN = 'less';
    const CONDITION_LESS_THAN_OR_EQUAL = 'less or equal';
    const CONDITION_CONTAINS = 'contains';
    const CONDITION_IN = 'in';
    const CONDITION_NOT_IN = 'not in';

    const ORDER_ASCENDING = 'ascending';
    const ORDER_DESCENDING = 'descending';

    /**
     * @param mixed $query
     * @return QueryWrapperInterface
     */
    public static function fromQuery($query);

    /**
     * @param mixed $primaryKeyValue
     * @return ObjectWrapperInterface|null
     */
    public function findOneByPrimaryKey($primaryKeyValue);

    /**
     * @return CollectionWrapperInterface
     */
    public function find();

    /**
     * @param string $columnName
     * @param mixed  $condition
     * @return QueryWrapperInterface
     */
    public function orderBy($columnName, $condition);

    /**
     * @param string $columnName
     * @param mixed  $condition
     * @return boolean
     */
    public function canOrderBy($columnName, $condition);

    /**
     * @param string $columnName
     * @param mixed  $value
     * @param string $condition
     * @return QueryWrapperInterface
     */
    public function filterBy($columnName, $value, $condition = QueryWrapperInterface::CONDITION_EQUAL);

    /**
     * @param string $columnName
     * @param mixed  $value
     * @param string $condition
     * @return boolean
     */
    public function canFilterBy($columnName, $value, $condition = QueryWrapperInterface::CONDITION_EQUAL);

    /**
     * @param integer $offset
     * @return QueryWrapperInterface
     */
    public function offset($offset);

    /**
     * @param integer $limit
     * @return QueryWrapperInterface
     */
    public function limit($limit);

    /**
     * @return ObjectWrapperInterface
     */
    public function createObject();

    /**
     * @return integer
     */
    public function count();

    /**
     * @return boolean
     */
    public function exists();
}