/** * @param string $sql * @param array $params * @param int $page * @param int $numPerPage * @return array|bool */ public static function findBySql($sql, $params = array(), $page = 0, $numPerPage = 0) { $params = static::formatBindParams($params); list($start, $count) = self::$db->getOffsetsFromPage($page, $numPerPage); $results = self::$db->getArray($sql, $params, $start, $count); $paging = self::$db->getPaging($page, $numPerPage); $objects = array(); if (!empty($results)) { foreach ($results as $result) { $objects[] = static::hydrate($result); } } return $page !== 0 && $numPerPage !== 0 ? array($objects, $paging) : $objects; }