has() public static method

检测配置是否存在
public static has ( string $name, string $range = '' ) : boolean
$name string 配置参数名(支持二级配置 .号分割)
$range string 作用域
return boolean
示例#1
0
 public function testConfig()
 {
     App::run();
     $this->assertTrue(Config::has('url_route_on'));
     $this->assertEquals(1, Config::get('url_route_on'));
     Config::set('url_route_on', false);
     $this->assertEquals(0, Config::get('url_route_on'));
     Config::range('test');
     $this->assertFalse(Config::has('url_route_on'));
     Config::reset();
 }
示例#2
0
 public function testConfig()
 {
     App::run(Config::get());
     Config::parse('isTrue=1', 'test');
     Config::range('test');
     $this->assertTrue(Config::has('isTrue'));
     $this->assertEquals(1, Config::get('isTrue'));
     Config::set('isTrue', false);
     $this->assertEquals(0, Config::get('isTrue'));
     Config::reset();
 }
示例#3
0
 /**
  * 显示页面Trace信息
  * @access private
  */
 private function showTrace()
 {
     // 系统默认显示信息
     $files = get_included_files();
     $info = [];
     foreach ($files as $key => $file) {
         $info[] = $file . ' ( ' . number_format(filesize($file) / 1024, 2) . ' KB )';
     }
     $trace = [];
     Debug::remark('START', NOW_TIME);
     $base = ['请求信息' => date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . ' ' . $_SERVER['SERVER_PROTOCOL'] . ' ' . $_SERVER['REQUEST_METHOD'] . ' : ' . $_SERVER['PHP_SELF'], '运行时间' => Debug::getUseTime('START', 'END', 6) . 's', '内存开销' => MEMORY_LIMIT_ON ? G('START', 'END', 'm') . 'b' : '不支持', '查询信息' => N('db_query') . ' queries ' . N('db_write') . ' writes ', '文件加载' => count($files), '缓存信息' => N('cache_read') . ' gets ' . N('cache_write') . ' writes ', '配置加载' => count(Config::get())];
     // 读取项目定义的Trace文件
     $traceFile = MODULE_PATH . 'trace.php';
     if (is_file($traceFile)) {
         $base = array_merge($base, include $traceFile);
     }
     $debug = Log::getLog();
     $tabs = Config::get('trace_page_tabs');
     foreach ($tabs as $name => $title) {
         switch (strtoupper($name)) {
             case 'BASE':
                 // 基本信息
                 $trace[$title] = $base;
                 break;
             case 'FILE':
                 // 文件信息
                 $trace[$title] = $info;
                 break;
             default:
                 // 调试信息
                 $name = strtoupper($name);
                 if (strpos($name, '|')) {
                     // 多组信息
                     $array = explode('|', $name);
                     $result = [];
                     foreach ($array as $name) {
                         $result += isset($debug[$name]) ? $debug[$name] : [];
                     }
                     $trace[$title] = $result;
                 } else {
                     $trace[$title] = isset($debug[$name]) ? $debug[$name] : '';
                 }
         }
     }
     unset($files, $info, $base, $debug);
     // 调用Trace页面模板
     ob_start();
     include Config::has('tmpl_trace_file') ? Config::get('tmpl_trace_file') : THINK_PATH . 'tpl/page_trace.tpl';
     return ob_get_clean();
 }
示例#4
0
 public function testHas()
 {
     $range = '_test_';
     $this->assertFalse(Config::has('abcd', $range));
     $reflectedClass = new ReflectionClass('\\think\\Config');
     $reflectedPropertyConfig = $reflectedClass->getProperty('config');
     $reflectedPropertyConfig->setAccessible(true);
     // if (!strpos($name, '.')):
     $reflectedPropertyConfig->setValue([$range => ['abcd' => 'value']]);
     $this->assertTrue(Config::has('abcd', $range));
     // else ...
     $this->assertFalse(Config::has('abcd.efg', $range));
     $reflectedPropertyConfig->setValue([$range => ['abcd' => ['efg' => 'value']]]);
     $this->assertTrue(Config::has('abcd.efg', $range));
 }
示例#5
0
 /**
  * 获取和设置配置参数
  * @param string|array  $name 参数名
  * @param mixed         $value 参数值
  * @param string        $range 作用域
  * @return mixed
  */
 function config($name = '', $value = null, $range = '')
 {
     if (is_null($value) && is_string($name)) {
         return 0 === strpos($name, '?') ? Config::has(substr($name, 1), $range) : Config::get($name, $range);
     } else {
         return Config::set($name, $value, $range);
     }
 }
示例#6
0
 public function __construct()
 {
     if (Config::has('token')) {
         $this->config = array_merge($this->config, Config::get('token'));
     }
 }