当前位置: 首页>>代码示例>>PHP>>正文


PHP DB::is_active方法代码示例

本文整理汇总了PHP中SilverStripe\ORM\DB::is_active方法的典型用法代码示例。如果您正苦于以下问题:PHP DB::is_active方法的具体用法?PHP DB::is_active怎么用?PHP DB::is_active使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SilverStripe\ORM\DB的用法示例。


在下文中一共展示了DB::is_active方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: hasTable

 /**
  * @todo Move this to SS_Database or DB
  */
 public static function hasTable($class)
 {
     // Cache the list of all table names to reduce on DB traffic
     if (empty(self::$_cache_all_tables) && DB::is_active()) {
         self::$_cache_all_tables = DB::get_schema()->tableList();
     }
     return !empty(self::$_cache_all_tables[strtolower($class)]);
 }
开发者ID:jacobbuck,项目名称:silverstripe-framework,代码行数:11,代码来源:ClassInfo.php

示例2: doBuild

 /**
  * Updates the database schema, creating tables & fields as necessary.
  *
  * @param boolean $quiet Don't show messages
  * @param boolean $populate Populate the database, as well as setting up its schema
  * @param bool $testMode
  */
 public function doBuild($quiet = false, $populate = true, $testMode = false)
 {
     if ($quiet) {
         DB::quiet();
     } else {
         $conn = DB::get_conn();
         // Assumes database class is like "MySQLDatabase" or "MSSQLDatabase" (suffixed with "Database")
         $dbType = substr(get_class($conn), 0, -8);
         $dbVersion = $conn->getVersion();
         $databaseName = method_exists($conn, 'currentDatabase') ? $conn->getSelectedDatabase() : "";
         if (Director::is_cli()) {
             echo sprintf("\n\nBuilding database %s using %s %s\n\n", $databaseName, $dbType, $dbVersion);
         } else {
             echo sprintf("<h2>Building database %s using %s %s</h2>", $databaseName, $dbType, $dbVersion);
         }
     }
     // Set up the initial database
     if (!DB::is_active()) {
         if (!$quiet) {
             echo '<p><b>Creating database</b></p>';
         }
         // Load parameters from existing configuration
         global $databaseConfig;
         if (empty($databaseConfig) && empty($_REQUEST['db'])) {
             user_error("No database configuration available", E_USER_ERROR);
         }
         $parameters = !empty($databaseConfig) ? $databaseConfig : $_REQUEST['db'];
         // Check database name is given
         if (empty($parameters['database'])) {
             user_error("No database name given; please give a value for \$databaseConfig['database']", E_USER_ERROR);
         }
         $database = $parameters['database'];
         // Establish connection and create database in two steps
         unset($parameters['database']);
         DB::connect($parameters);
         DB::create_database($database);
     }
     // Build the database.  Most of the hard work is handled by DataObject
     $dataClasses = ClassInfo::subclassesFor('SilverStripe\\ORM\\DataObject');
     array_shift($dataClasses);
     if (!$quiet) {
         if (Director::is_cli()) {
             echo "\nCREATING DATABASE TABLES\n\n";
         } else {
             echo "\n<p><b>Creating database tables</b></p>\n\n";
         }
     }
     // Initiate schema update
     $dbSchema = DB::get_schema();
     $dbSchema->schemaUpdate(function () use($dataClasses, $testMode, $quiet) {
         foreach ($dataClasses as $dataClass) {
             // Check if class exists before trying to instantiate - this sidesteps any manifest weirdness
             if (!class_exists($dataClass)) {
                 continue;
             }
             // Check if this class should be excluded as per testing conventions
             $SNG = singleton($dataClass);
             if (!$testMode && $SNG instanceof TestOnly) {
                 continue;
             }
             // Log data
             if (!$quiet) {
                 if (Director::is_cli()) {
                     echo " * {$dataClass}\n";
                 } else {
                     echo "<li>{$dataClass}</li>\n";
                 }
             }
             // Instruct the class to apply its schema to the database
             $SNG->requireTable();
         }
     });
     ClassInfo::reset_db_cache();
     if ($populate) {
         if (!$quiet) {
             if (Director::is_cli()) {
                 echo "\nCREATING DATABASE RECORDS\n\n";
             } else {
                 echo "\n<p><b>Creating database records</b></p>\n\n";
             }
         }
         foreach ($dataClasses as $dataClass) {
             // Check if class exists before trying to instantiate - this sidesteps any manifest weirdness
             // Test_ indicates that it's the data class is part of testing system
             if (strpos($dataClass, 'Test_') === false && class_exists($dataClass)) {
                 if (!$quiet) {
                     if (Director::is_cli()) {
                         echo " * {$dataClass}\n";
                     } else {
                         echo "<li>{$dataClass}</li>\n";
                     }
                 }
                 singleton($dataClass)->requireDefaultRecords();
//.........这里部分代码省略.........
开发者ID:jacobbuck,项目名称:silverstripe-framework,代码行数:101,代码来源:DatabaseAdmin.php

示例3: inline_parameters

 /**
  * @param string $sql The parameterised query
  * @param array $parameters The parameters to inject into the query
  *
  * @return string
  */
 public static function inline_parameters($sql, $parameters)
 {
     $segments = preg_split('/\\?/', $sql);
     $joined = '';
     $inString = false;
     $numSegments = count($segments);
     for ($i = 0; $i < $numSegments; $i++) {
         $input = $segments[$i];
         // Append next segment
         $joined .= $segments[$i];
         // Don't add placeholder after last segment
         if ($i === $numSegments - 1) {
             break;
         }
         // check string escape on previous fragment
         // Remove escaped backslashes, count them!
         $input = preg_replace('/\\\\\\\\/', '', $input);
         // Count quotes
         $totalQuotes = substr_count($input, "'");
         // Includes double quote escaped quotes
         $escapedQuotes = substr_count($input, "\\'");
         if (($totalQuotes - $escapedQuotes) % 2 !== 0) {
             $inString = !$inString;
         }
         // Append placeholder replacement
         if ($inString) {
             // Literal question mark
             $joined .= '?';
             continue;
         }
         // Encode and insert next parameter
         $next = array_shift($parameters);
         if (is_array($next) && isset($next['value'])) {
             $next = $next['value'];
         }
         if (is_bool($next)) {
             $value = $next ? '1' : '0';
         } elseif (is_int($next)) {
             $value = $next;
         } else {
             $value = DB::is_active() ? Convert::raw2sql($next, true) : $next;
         }
         $joined .= $value;
     }
     return $joined;
 }
开发者ID:SpiritLevel,项目名称:silverstripe-framework,代码行数:52,代码来源:DB.php


注:本文中的SilverStripe\ORM\DB::is_active方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。