Contao\Database::getInstance PHP Метод

getInstance() публичный статический Метод

Instantiate the Database object (Factory)
public static getInstance ( array $arrCustomConfig = null ) : Database
$arrCustomConfig array A configuration array
Результат Database The Database object
    public static function getInstance(array $arrCustomConfig = null)
    {
        $arrConfig = array();
        $arrDefaultConfig = array('dbHost' => \Config::get('dbHost'), 'dbPort' => \Config::get('dbPort'), 'dbUser' => \Config::get('dbUser'), 'dbPass' => \Config::get('dbPass'), 'dbDatabase' => \Config::get('dbDatabase'));
        if (is_array($arrCustomConfig)) {
            $arrConfig = array_merge($arrDefaultConfig, $arrCustomConfig);
        }
        // Sort the array before generating the key
        ksort($arrConfig);
        $strKey = md5(implode('', $arrConfig));
        if (!isset(static::$arrInstances[$strKey])) {
            static::$arrInstances[$strKey] = new static($arrConfig);
        }
        return static::$arrInstances[$strKey];
    }

Usage Example

Пример #1
0
 /**
  * @param $arrStructure
  * @return array
  */
 protected function getUsedTranslationFieldIds($arrStructure)
 {
     $database = Database::getInstance();
     $arrFids = array();
     // Get used field ids
     if (is_array($arrStructure)) {
         foreach ($arrStructure as $strTable => $arrFields) {
             if (is_array($arrFields) && !empty($arrFields)) {
                 switch ($GLOBALS['TL_DCA'][$strTable]['config']['dataContainer']) {
                     case 'Table':
                         $objData = $database->prepare(sprintf("SELECT %s FROM %s", implode(', ', $arrFields), $strTable))->execute();
                         if ($objData !== null) {
                             foreach ($arrFields as $strField) {
                                 $arrFids = array_merge($arrFids, $objData->fetchEach($strField));
                             }
                         }
                         break;
                     case 'File':
                         foreach ($arrFields as $strField) {
                             $arrFids[] = $GLOBALS['TL_CONFIG'][$strField];
                         }
                         break;
                 }
             }
         }
         $arrFids = array_diff($arrFids, array(0));
         $arrFids = array_unique($arrFids);
     }
     return $arrFids;
 }
All Usage Examples Of Contao\Database::getInstance