function eqphp_autoload($class) { if (isset($_SERVER['REQUEST_URI'])) { $root = current(explode('/', trim($_SERVER['REQUEST_URI'], '/'))); } //optimize: $config save memcache or redis $group = config('group.list'); $path = isset($root) && is_array($group) && in_array($root, $group) ? $root . '/' : ''; $module = array('a' => $path . 'action', 'm' => $path . 'model', 'p' => $path . 'plugin', 's' => 'server'); $prefix = substr($class, 0, strpos($class, '_')); $dir_name = in_array($prefix, array('a', 'm', 's', 'p')) ? $module[$prefix] : 'class'; $execute_file = $dir_name . '/' . $class . '.php'; if (file_exists($execute_file)) { return include PATH_ROOT . $execute_file; } //通用加载 if (config('state.common_load') && in_array($prefix, array('a', 'm'), true)) { $common_option = array('a' => 'action/', 'm' => 'model/'); $execute_file = PATH_ROOT . $common_option[$prefix] . $class . '.php'; if (file_exists($execute_file)) { return include $execute_file; } } //贪婪加载 if (config('state.greedy_load')) { $execute_file = file::search(PATH_ROOT . $dir_name, $class, $file_list, true); if ($execute_file) { return include $execute_file; } } if ($prefix === 'a') { logger::notice('class [' . $class . '] not found'); http::send(404); } }
protected function execIndex(array $prm = array()) { $this->prepare(); $pattern = FILESROOT.$this->dir.DS.'*'; $search = http_vars::getInstance()->get('search'); if ($search) { $pattern.= strtolower($search).'*'; $this->uri.= 'search='.$search.'&'; } $delete = http_vars::getInstance()->get('delete'); if ($delete) { $file = FILESROOT.urldecode($delete); if (file::exists($file)) { file::delete($file); file::multipleDelete(substr($file, 0, -strlen(file::getExt($file))-1).'_*'); response::getInstance()->redirect($this->uri); } } $form = $this->getForm(); if (request::isPost()) { $form->refill(); if ($form->isValid()) response::getInstance()->sendText('ok'); } $files = array(); foreach(file::search($pattern) as $f) { if (strpos($f, 'nyroBrowserThumb') === false) { $name = basename($f); if ($this->type == 'image' && strlen($name) > 15) $name = substr($name, 0, 15).'...'.file::getExt($f); $files[] = array( $f, request::uploadedUri(str_replace(FILESROOT, '', $f), $this->myCfg['uploadedUri']), $name, file::humanSize($f), utils::formatDate(filemtime($f)), $this->uri.'delete='.urlencode(str_replace(FILESROOT, '', $f)).'&' ); } } $this->setViewVars(array( 'uri'=>$this->uri, 'form'=>$form, 'config'=>$this->config, 'type'=>$this->type, 'files'=>$files, 'searchButton'=>$this->myCfg['search'], 'search'=>$search, 'imgHelper'=>$this->myCfg['imgHelper'], 'filesTitle'=>$this->myCfg['filesTitle'], 'noFiles'=>$this->myCfg['noFiles'], 'name'=>$this->myCfg['name'], 'size'=>$this->myCfg['size'], 'date'=>$this->myCfg['date'], 'delete'=>$this->myCfg['delete'], )); }