setMetadataDriverImpl($config->newDefaultAnnotationDriver([__DIR__ . '/Model'], true)); #$config->setMetadataDriverImpl(new AttributeDriver([__DIR__ . '/Model'])); $conn = array( 'driver' => 'pdo_sqlite', 'path' => dirname(__DIR__) . '/db.sqlite', ); self::$entityManager = EntityManager::create($conn, $config); } /** * @param object $entity * @param array $criteria */ public static function save(object $entity, array $criteria = []) { $repository = self::$entityManager->getRepository(get_class($entity)); $exists = $repository->findOneBy($criteria); if (! empty($criteria) && ! is_null($exists)) { foreach (get_object_vars($entity) as $key => $value) { $exists->$key = $value; } } else { $exists = $entity; } self::$entityManager->persist($exists); self::$entityManager->flush(); } }