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

saveRun() public method

public saveRun ( Run $run )
$run Run
    public function saveRun(Run $run)
    {
        // Just UPDATE title
        if ($run->getId()) {
            $stmt = $this->connection->prepare('UPDATE bl_run SET title = :title WHERE id = :id');
            $stmt->bindValue('title', $run->getTitle());
            $stmt->bindValue('id', $run->getId());
            $stmt->execute();
            return $this;
        }
        // Insert the run
        $stmt = $this->connection->prepare('INSERT INTO bl_run (title, project_name, properties, created_at) VALUES (:title, :project_name, :properties, :created_at)');
        $stmt->bindValue('title', $run->getTitle());
        $stmt->bindValue('project_name', $run->getProjectName());
        $stmt->bindValue('properties', json_encode($run->getProperties()));
        $stmt->bindValue('created_at', $run->getCreatedAt(), "datetime");
        $stmt->execute();
        $run->setId($this->connection->lastInsertId());
        // Insert units
        foreach ($run->getUnits() as $unit) {
            $stmt = $this->connection->prepare('
                INSERT INTO bl_run_unit
                    (run_id, feature, created_at, started_at, finished_at, return_code, output_files)
                VALUES
                    (:run_id, :feature, :created_at, :started_at, :finished_at, :return_code, :output_files)
            ');
            $stmt->bindValue('run_id', $run->getId());
            $stmt->bindValue('feature', $unit->getFeature());
            $stmt->bindValue('created_at', $unit->getCreatedAt(), "datetime");
            $stmt->bindValue('started_at', $unit->getStartedAt(), "datetime");
            $stmt->bindValue('finished_at', $unit->getFinishedAt(), "datetime");
            $stmt->bindValue('return_code', $unit->getReturnCode());
            $stmt->bindValue('output_files', json_encode($unit->getOutputFiles()->toArrayOfID()));
            $stmt->execute();
            $unit->setId($this->connection->lastInsertId());
        }
        return $this;
    }