public function testAddField3() { $fields = $this->object->getAllFields(); $this->object->addField('date2', array('index' => 'both', 'type' => 'date')); $field = $this->object->getField('date2'); $this->assertEquals(XSFieldMeta::TYPE_DATE, $field->type); $this->assertTrue($field->hasIndexMixed()); $this->assertTrue($field->hasIndexSelf()); $this->assertEquals(count($fields), $field->vno); }
/** * Init by laravel Config * @param $config see demo.ini file */ public function __construct($config) { self::setConfig($config); $scheme = new \XSFieldScheme(); foreach ($this->_config as $key => $value) { if (is_array($value)) { $scheme->addField($key, $value); } } $scheme->checkValid(true); $this->_scheme = $this->_bindScheme = $scheme; $this->setScheme($scheme); }
private function loadIniFile($file) { $cache = false; $cache_write = ''; if (strlen($file) < 255 && file_exists($file)) { $cache_key = md5(__CLASS__ . '::ini::' . realpath($file)); if (function_exists('apc_fetch')) { $cache = apc_fetch($cache_key); $cache_write = 'apc_store'; } elseif (function_exists('xcache_get') && php_sapi_name() !== 'cli') { $cache = xcache_get($cache_key); $cache_write = 'xcache_set'; } elseif (function_exists('eaccelerator_get')) { $cache = eaccelerator_get($cache_key); $cache_write = 'eaccelerator_put'; } if ($cache && isset($cache['mtime']) && isset($cache['scheme']) && filemtime($file) <= $cache['mtime']) { $this->_scheme = $this->_bindScheme = unserialize($cache['scheme']); $this->_config = $cache['config']; return; } $data = file_get_contents($file); } else { $data = $file; $file = substr(md5($file), 8, 8) . '.ini'; } $this->_config = $this->parseIniData($data); if ($this->_config === false) { throw new XSException('Failed to parse project config file/string: \'' . substr($file, 0, 10) . '...\''); } $scheme = new XSFieldScheme(); foreach ($this->_config as $key => $value) { if (is_array($value)) { $scheme->addField($key, $value); } } $scheme->checkValid(true); if (!isset($this->_config['project.name'])) { $this->_config['project.name'] = basename($file, '.ini'); } $this->_scheme = $this->_bindScheme = $scheme; if ($cache_write != '') { $cache['mtime'] = filemtime($file); $cache['scheme'] = serialize($this->_scheme); $cache['config'] = $this->_config; call_user_func($cache_write, $cache_key, $cache); } }