コード例 #1
0
ファイル: Database.php プロジェクト: ktrzos/plethora
 /**
  * Checks if value is unique
  *
  * @static
  * @access     public
  * @param      string $mValue
  * @param      string $sDontCheckThisID
  * @param      string $sTableClass
  * @param      string $sColumn
  * @param      string $sCommuniquePattern
  * @param      string $sAdditionalWhere
  * @return     boolean|string
  * @since      1.0.0-alpha
  * @version    1.0.0-alpha
  */
 public static function unique($mValue, $sDontCheckThisID, $sTableClass, $sColumn, $sCommuniquePattern = NULL, $sAdditionalWhere = '')
 {
     // array
     if (is_array($mValue)) {
         $mParam = [];
         foreach ($mValue as $v) {
             if ($v != "" && !array_search($v, $mParam)) {
                 $mParam[] = $v;
             }
         }
         if (count($mParam) == 0) {
             return TRUE;
         }
         $sOp = "IN (:param)";
         // single value
     } else {
         if ($mValue == "") {
             return TRUE;
         }
         $mParam = $mValue;
         $sOp = "= :param";
     }
     # build query
     $queryBuilder = DB::getEntityManager()->createQueryBuilder();
     $query = $queryBuilder->select('t.id');
     $query->from($sTableClass, 't');
     $query->where("t." . $sColumn . " " . $sOp);
     $query->setParameter('param', $mParam);
     if ($sDontCheckThisID !== NULL) {
         $query->andWhere('t.id <> :selfid');
         $query->setParameter('selfid', $sDontCheckThisID);
     }
     if ($sAdditionalWhere !== '') {
         $query->andWhere($sAdditionalWhere);
     }
     $queryResult = $query->getQuery()->execute();
     // Checking result(s)
     if (count($queryResult) > 0) {
         if (empty($sCommuniquePattern)) {
             if (is_array($mValue)) {
                 return __('One of the given values already exists in the database.');
             } else {
                 return __('This value already exists in the database.');
             }
         } else {
             return __($sCommuniquePattern);
         }
     }
     return TRUE;
 }
コード例 #2
0
ファイル: Dbupdate.php プロジェクト: ktrzos/plethora
 /**
  * Update database.
  *
  * @static
  * @access   public
  * @return   View
  * @since    1.2.0-dev
  * @version  1.2.0-dev
  */
 private static function makeUpdateNoExec()
 {
     $entityManager = DB::getEntityManager();
     $tool = new ORM\Tools\SchemaTool($entityManager);
     $classes = [];
     // get list of Model classes
     foreach (DB::getModelsNames() as $sClass) {
         $classes[] = $entityManager->getClassMetadata($sClass);
     }
     // make schemas update
     try {
         $sql = $tool->getUpdateSchemaSql($classes);
         /* @var $sql array */
         $tool->updateSchema($classes);
         $output = View::factory('db_update/backend/update_output')->bind('aSQL', $sql)->renderAndMinify();
     } catch (\Exception $e) {
         $output = __('Error') . ': ' . $e->getMessage();
     }
     // return output
     return $output;
 }
コード例 #3
0
ファイル: Toolbar.php プロジェクト: ktrzos/plethora
 /**
  * Render toolbar.
  *
  * @access     public
  * @return    string
  * @since      1.0.0-dev, 2015-06-08
  * @version    1.1.0-dev
  */
 public function render()
 {
     $oSqlLogger = DB::getEntityManager()->getConnection()->getConfiguration()->getSQLLogger();
     //* @var $oSqlLogger \Doctrine\DBAL\Logging\DebugStack */
     $aRoutesList = Router::getRoutes();
     $aModules = Router::getModules();
     $aBenchmarkMarks = Benchmark::getAllMarks();
     $aCustoms = static::getCustoms();
     $cronJobs = CronJobsHelper::getCronJobs();
     return View::factory('dev_toolbar/toolbar')->bind('oSqlLogger', $oSqlLogger)->bind('aRoutesList', $aRoutesList)->bind('aModules', $aModules)->bind('aCustoms', $aCustoms)->bind('aBenchmarkMarks', $aBenchmarkMarks)->bind('cronJobs', $cronJobs)->render();
 }