/** * Builds an instance of PC_Project from the given row * * @param array $row the row from db * @param boolean $full whether to fetch data from other tables * @return PC_Project the project */ private function build_project($row, $full) { if (!$row) { return null; } $db = FWS_Props::get()->db(); $proj = new PC_Project($row['id'], $row['name'], $row['created'], $row['type_folders'], $row['type_exclude'], $row['stmt_folders'], $row['stmt_exclude'], $row['report_argret_strictly']); if ($full) { $stmt = $db->get_prepared_statement('SELECT * FROM ' . PC_TB_PROJECT_DEPS . ' WHERE project_id = :id'); $stmt->bind(':id', $row['id']); $deps = $db->get_rows($stmt->get_statement()); foreach ($deps as $d) { $proj->add_project_dep($d['dep_id']); } $stmt = $db->get_prepared_statement('SELECT * FROM ' . PC_TB_REQUIREMENTS . ' WHERE project_id = :id'); $stmt->bind(':id', $row['id']); $req = $db->get_rows($stmt->get_statement()); foreach ($req as $v) { $proj->add_req($v['id'], $v['type'], $v['name'], $v['version']); } } return $proj; }