本文整理汇总了PHP中Fn::trigger404方法的典型用法代码示例。如果您正苦于以下问题:PHP Fn::trigger404方法的具体用法?PHP Fn::trigger404怎么用?PHP Fn::trigger404使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fn
的用法示例。
在下文中一共展示了Fn::trigger404方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: instance
/**
* 实例化一个模型
* @param type $classname_path
* @param type $hmvc_module_floder
* @return type CoreModel
*/
public static function instance($classname_path = null, $hmvc_module_floder = NULL)
{
if (!empty($hmvc_module_floder)) {
CoreRouter::switchHmvcConfig($hmvc_module_floder);
}
//这里调用控制器instance是为了触发自动加载,从而避免了插件模式下,直接instance模型,自动加载失效的问题
CoreController::instance();
if (empty($classname_path)) {
$renew = is_bool($classname_path) && $classname_path === true;
CoreLoader::classAutoloadRegister();
return empty(self::$instance) || $renew ? self::$instance = new self() : self::$instance;
}
$system = CoreLoader::$system;
$classname_path = str_replace('.', DIRECTORY_SEPARATOR, $classname_path);
$classname = basename($classname_path);
$model_folders = $system['model_folder'];
if (!is_array($model_folders)) {
$model_folders = array($model_folders);
}
$count = count($model_folders);
CoreLoader::classAutoloadRegister();
foreach ($model_folders as $key => $model_folder) {
$filepath = $model_folder . DIRECTORY_SEPARATOR . $classname_path . $system['model_file_suffix'];
$alias_name = $classname;
if (isset(CoreModelLoader::$model_files[$alias_name])) {
return CoreModelLoader::$model_files[$alias_name];
}
if (file_exists($filepath)) {
//在plugin模式下,路由器不再使用,那么自动注册不会被执行,自动加载功能会失效,所以在这里再尝试加载一次,
//如此一来就能满足两种模式
//CoreLoader::classAutoloadRegister();
if (!class_exists($classname, FALSE)) {
CoreLoader::includeOnce($filepath);
}
if (class_exists($classname, FALSE)) {
return CoreModelLoader::$model_files[$alias_name] = new $classname();
} else {
if ($key == $count - 1) {
Fn::trigger404('Model Class:' . $classname . ' not found.');
}
}
} else {
if ($key == $count - 1) {
Fn::trigger404($filepath . ' not found.');
}
}
}
}
示例2: view_path
/**
* 获取视图绝对路径,在视图中include其它视图的时候用到。
* 提示:
* hvmc模式,“视图路经数组”是模块的视图数组和主配置视图数组合并后的数组。
* 即:$hmvc_system['view_folder']=array_merge($hmvc_system['view_folder'], $system['view_folder']);
* @param type $view_name 视图名称,不含后缀
* @param type $path_key 就是配置中“视图路经数组”的键
* @return string
*/
public static function view_path($view_name, $path_key = 0)
{
if (stripos($view_name, ':') !== false) {
$info = explode(':', $view_name);
$path_key = current($info);
$view_name = next($info);
}
$system = CoreLoader::$system;
if (!is_array($system['view_folder'])) {
$system['view_folder'] = array($system['view_folder']);
}
if (!isset($system['view_folder'][$path_key])) {
Fn::trigger404('error key[' . $path_key . '] of ' . $system['view_folder']);
}
$dir = $system['view_folder'][$path_key];
$view_path = $dir . DIRECTORY_SEPARATOR . $view_name . $system['view_file_suffix'];
return Fn::truepath($view_path);
}
示例3: getQueryStr
private static function getQueryStr()
{
$system = CoreLoader::$system;
// 命令行运行检查
if (CoreInput::isCli()) {
global $argv;
$pathinfo_query = isset($argv[1]) ? $argv[1] : '';
} else {
$pathinfo = @parse_url($_SERVER['REQUEST_URI']);
if (empty($pathinfo)) {
if ($system['debug']) {
Fn::trigger404('request parse error:' . $_SERVER['REQUEST_URI']);
} else {
Fn::trigger404();
}
}
// pathinfo模式下有?,那么$pathinfo['query']也是非空的,这个时候查询字符串是PATH_INFO和query
$query_str = empty($pathinfo['query']) ? '' : $pathinfo['query'];
$pathinfo_query = empty($_SERVER['PATH_INFO']) ? $query_str : $_SERVER['PATH_INFO'] . '&' . $query_str;
}
if ($pathinfo_query) {
$pathinfo_query = trim($pathinfo_query, '/&');
}
// urldecode 解码所有的参数名,解决get表单会编码参数名称的问题
$pq = $_pq = array();
$_pq = explode('&', $pathinfo_query);
foreach ($_pq as $value) {
$p = explode('=', $value);
if (isset($p[0])) {
$p[0] = urldecode($p[0]);
}
$pq[] = implode('=', $p);
}
$pathinfo_query = implode('&', $pq);
return $pathinfo_query;
}
示例4: instance
/**
* 实例化一个控制器
* @staticvar array $loadedClasses
* @param type $classname_path
* @param type $hmvc_module_floder
* @return CoreController
*/
public static function instance($classname_path = null, $hmvc_module_floder = NULL)
{
if (!empty($hmvc_module_floder)) {
CoreRouter::switchHmvcConfig($hmvc_module_floder);
}
if (empty($classname_path)) {
CoreLoader::classAutoloadRegister();
return new self();
}
$system = CoreLoader::$system;
$classname_path = str_replace('.', DIRECTORY_SEPARATOR, $classname_path);
$classname = basename($classname_path);
$filepath = $system['controller_folder'] . DIRECTORY_SEPARATOR . $classname_path . $system['controller_file_suffix'];
$alias_name = strtolower($classname);
static $loadedClasses = array();
if (isset($loadedClasses[$alias_name])) {
return $loadedClasses[$alias_name];
}
if (file_exists($filepath)) {
//在plugin模式下,路由器不再使用,那么自动注册不会被执行,自动加载功能会失效,所以在这里再尝试加载一次,
//如此一来就能满足两种模式
CoreLoader::classAutoloadRegister();
CoreLoader::includeOnce($filepath);
if (class_exists($classname, FALSE)) {
return $loadedClasses[$alias_name] = new $classname();
} else {
Fn::trigger404('Ccontroller Class:' . $classname . ' not found.');
}
} else {
Fn::trigger404($filepath . ' not found.');
}
}