public function getPackage()
 {
     $package = parent::getPackage();
     if ($package === null) {
         $package = $this->pdo->findPackageById($this->getPackageId());
         $this->setPackage($package);
     }
     return $package;
 }
 public function persistVersion(Version $version)
 {
     $data = array($version->getPackage()->getId(), $version->getVersion(), $version->getReferenceHash(), $version->getReferenceName(), $version->getLicense(), $version->getCreatedAt()->format('Y-m-d H:i:s'), $version->getUpdatedAt()->format('Y-m-d H:i:s'));
     if ($version->getId()) {
         $data[] = $version->getId();
         $sql = "UPDATE " . $this->getTablePrefix() . "version\n                    SET\n                        package_id = ?,\n                        version = ?,\n                        reference_hash = ?,\n                        reference_name = ?,\n                        license = ?,\n                        created_at = ?,\n                        updated_at = ?\n                    WHERE\n                        id = ?";
         $stmt = $this->pdo->prepare($sql);
         $stmt->execute($data);
     } else {
         $sql = "INSERT INTO " . $this->getTablePrefix() . "version\n                    (package_id, version, reference_hash, reference_name, license, created_at, updated_at)\n                    VALUES\n                    (?, ?, ?, ?, ?, ?, ?)";
         $stmt = $this->pdo->prepare($sql);
         $stmt->execute($data);
         $version->setId((int) $this->pdo->lastInsertId());
     }
     $this->persistDependencies($version, $version->getDependencies());
 }