em = $em; } /** * Retrieve database table entry id from search parameters. * @param string $entityName * @param array $search * @return mixed */ public function getId($entityName, $search) { $item = $this->em ->getRepository($entityName) ->findOneBy($search); return !is_null($item) ? $item->id : false; } /** * Retrieve database table entry from search parameters. * @param string $entityName * @param array $search * @return mixed */ public function getEntry($entityName, $search) { $item = $this->em ->getRepository($entityName) ->findOneBy($search); return !is_null($item) ? $item : false; } /** * Create database table entry. * @param string $entityName * @param array $data * @return mixed */ public function createEntry($entityName, array $data) { $item = new $entityName(); //if($item instanceof \Stock\Entity\Make) {Debug::errorLog("entity", 'stock\entity\make');} $item->fromArray($data); $this->em->persist($item); $this->em->flush(); return $item->id; } /** * Update database table entry. * @param string $entityName * @param integer $id * @param array $data */ public function updateEntry($entityName, $id, array $data) { $this->em ->getRepository($entityName) ->find($id) ->fromArray($data); $this->em->flush(); } /** * Establish new synchronization version to use. * @param string $tableName * @return integer */ public function getLatestSynchVersion($tableName) { $versions = $this->em->createQuery( "SELECT MAX(versionedTable.createVersion) AS createVersion," . " MAX(versionedTable.updateVersion) AS updateVersion " . "FROM $tableName versionedTable" ) ->getScalarResult(); return $versions[0]['createVersion'] > $versions[0]['updateVersion'] ? (int)$versions[0]['createVersion'] : (int)$versions[0]['updateVersion']; } }