Alex\BehatLauncher\Behat\MysqlStorage::getRunsByWhere PHP Method

getRunsByWhere() private method

private getRunsByWhere ( $where, array $params = [], $offset, $limit = 100 )
$params array
    private function getRunsByWhere($where, array $params = array(), $offset = 0, $limit = 100)
    {
        $stmt = $this->connection->prepare('
            SELECT
                R.id AS id,
                R.title AS title,
                R.project_name AS project_name,
                R.properties AS properties,
                R.created_at AS created_at,
                SUM(IF(U.id IS NOT NULL AND U.started_at IS NULL, 1, 0)) AS count_pending,
                SUM(IF(U.id IS NOT NULL AND U.started_at IS NOT NULL AND U.finished_at IS NULL, 1, 0)) AS count_running,
                SUM(IF(U.id IS NOT NULL AND U.finished_at IS NOT NULL AND U.return_code = 0, 1, 0)) AS count_succeeded,
                SUM(IF(U.id IS NOT NULL AND U.finished_at IS NOT NULL AND U.return_code != 0, 1, 0)) AS count_failed,
                MIN(U.started_at) AS started_at,
                MAX(U.finished_at) AS finished_at
            FROM
                bl_run R
                LEFT JOIN bl_run_unit U ON R.id = U.run_id
            WHERE
                ' . $where . '
            GROUP BY R.id
            ORDER BY U.created_at DESC
            LIMIT :offset, :limit
        ');
        $stmt->bindValue('offset', $offset, \PDO::PARAM_INT);
        $stmt->bindValue('limit', $limit, \PDO::PARAM_INT);
        foreach ($params as $name => $value) {
            $stmt->bindValue($name, $value);
        }
        $stmt->execute();
        $runs = array();
        while ($row = $stmt->fetch()) {
            $run = new Run();
            $run->setId($row['id'])->setTitle($row['title'])->setProjectName($row['project_name'])->setProperties(json_decode($row['properties'], true))->setStartedAt(null !== $row['started_at'] ? new \DateTime($row['started_at']) : null)->setFinishedAt(null !== $row['finished_at'] ? new \DateTime($row['finished_at']) : null)->setCreatedAt(new \DateTime($row['created_at']));
            $list = new LazyRunUnitList($this, $run, $row['count_pending'], $row['count_running'], $row['count_succeeded'], $row['count_failed']);
            $run->setUnits($list);
            $runs[] = $run;
        }
        return $runs;
    }