Webmeng 框架浅析(全篇)
- index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源;
- Router 检查 HTTP 请求,以确定如何处理该请求;
- 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
- 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查;
- 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
- 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于 后续的请求。
主要有三个目录
1、application目录:用于开发者编写相应的配置以及逻辑处理,开发者只需在这个目录下添加自己需要的开发文件。
2、system目录:框架的系统库,里面包括核心库,类库,辅助类库,数据库等,这些文件,开发者最好不要擅自修改,它是整个框架的龙脉。
3、user_guide:用户手册。
{ ● benchmark: "Benchmark", ● hooks: "Hooks", ● config: "Config", ● log: "Log", ● utf8: "Utf8", ● uri: "URI", ● router: "Router", ● output: "Output", ● security: "Security", ● input: "Input", ● lang: "Lang", ● loader: "Loader" }
每个类库的注释在上图已有解释。
- pre_system 在系统执行的早期调用,这个时候只有 基准测试类 和 钩子类 被加载了, 还没有执行到路由或其他的流程。
- pre_controller 在你的控制器调用之前执行,所有的基础类都已加载,路由和安全检查也已经完成。
- post_controller_constructor 在你的控制器实例化之后立即执行,控制器的任何方法都还尚未调用。
- post_controller 在你的控制器完全运行结束时执行。
- post_system 在最终的页面发送到浏览器之后、在系统的最后期被调用。
/** * Helper Loader * * @param string|string[] $helpers Helper name(s) * @return object */ public function helper($helpers = array()) { is_array($helpers) OR $helpers = array($helpers); foreach ($helpers as &$helper) { $filename = basename($helper); $filepath = ($filename === $helper) ? '' : substr($helper, 0, strlen($helper) - strlen($filename)); $filename = strtolower(preg_replace('#(_helper)?(\.php)?$#i', '', $filename)).'_helper'; $helper = $filepath.$filename; if (isset($this->_ci_helpers[$helper])) { continue; } // Is this a helper extension request? $ext_helper = config_item('subclass_prefix').$filename; $ext_loaded = FALSE; foreach ($this->_ci_helper_paths as $path) { if (file_exists($path.'helpers/'.$ext_helper.'.php')) { include_once($path.'helpers/'.$ext_helper.'.php'); $ext_loaded = TRUE; } } // If we have loaded extensions - check if the base one is here if ($ext_loaded === TRUE) { $base_helper = BASEPATH.'helpers/'.$helper.'.php'; if ( ! file_exists($base_helper)) { show_error('Unable to load the requested file: helpers/'.$helper.'.php'); } include_once($base_helper); $this->_ci_helpers[$helper] = TRUE; log_message('info', 'Helper loaded: '.$helper); continue; } // No extensions found ... try loading regular helpers and/or overrides foreach ($this->_ci_helper_paths as $path) { if (file_exists($path.'helpers/'.$helper.'.php')) { include_once($path.'helpers/'.$helper.'.php'); $this->_ci_helpers[$helper] = TRUE; log_message('info', 'Helper loaded: '.$helper); break; } } // unable to load the helper if ( ! isset($this->_ci_helpers[$helper])) { show_error('Unable to load the requested file: helpers/'.$helper.'.php'); } } return $this; }
- 数组辅助函数
- 验证码辅助函数
- Cookie 辅助函数
- 日期辅助函数
- 目录辅助函数
- 下载辅助函数
- 邮件辅助函数
- 文件辅助函数
- 表单辅助函数
- HTML 辅助函数
- Inflector 辅助函数
- 语言辅助函数
- 数字辅助函数
- 路径辅助函数
- 安全辅助函数
- 表情辅助函数
- 字符串辅助函数
- 文本辅助函数
- 排版辅助函数
- URL 辅助函数
- XML 辅助函数
- 基准测试类
- 缓存驱动器
- 日历类
- 购物车类
- 配置类
- Email 类
- 加密类
- 加密类(新版)
- 文件上传类
- 表单验证类
- FTP 类
- 图像处理类
- 输入类
- Javascript 类
- 语言类
- 加载器类
- 迁移类
- 输出类
- 分页类
- 模板解析类
- 安全类
- Session 类
- HTML 表格类
- 引用通告类
- 排版类
- 单元测试类
- URI 类
- 用户代理类
- XML-RPC 与 XML-RPC 服务器类
- Zip 编码类
数据库
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => '', 'password' => '', 'database' => '', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
提供了简单的查询缓存:
Key | Description | Default |
benchmarks | 在各个计时点花费的时间以及总时间 TRUE | |
config | CodeIgniter 配置变量 TRUE | |
controller_info | 被请求的控制器类和调用的方法 TRUE | |
get | 请求中的所有 GET 数据 TRUE | |
htWebmeng_headers | 本次请求的 HTTP 头部 TRUE | |
memory_usage | 本次请求消耗的内存(单位字节) TRUE | |
post | 请求中的所有 POST 数据 TRUE | |
queries | 列出所有执行的数据库查询,以及执行时间 TRUE | |
uri_string | 本次请求的 URI TRUE | |
session_data | 当前会话中存储的数据 TRUE | |
query_toggle_count | 指定显示多少个数据库查询,剩下的则默认折叠起来 25 |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:service@webmeng.net 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
以上信息是否解决您的问题?
相关问题
- 阿里云OSS云储存
- JS 早中晚 提示问候代码
- Webmeng X 2025 升级
- webmeng 循环 列出 数据
- PHP判断语句
- 这个工具,节省80%工作量不过分吧
- CodeIgnter 报错 The Encrypt library...
- WebmengWeb 2024 体验版下载
- liunx系统开启推送服务
- Webmeng2024内页升级大全-访问ID分类地区留言 | 推荐
- webmeng第5代升级
- Webmeng登录模块login
- phpstudy配置运行CI4框架
- CI4框架应用三 - app目录
- Webmeng404错误 模板路径
- PHP获取当前页面URL路径
- CI框架中的开启调试模式
- JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
- JS---PC端和移动端的无缝切换
- pc端、手机端网页切换
- 关于smarty限制文字输出字数
- php smarty 限制显示字数,smarty现在显示字数的各种...
- nginx和apache的区别,选择哪个好?
- Webmeng系统在Nginx下载伪静态写法
- ci 地址去掉index.php,CI框架去掉index.php的方
- search-高级搜索
- Webmeng 2022 V13.0.1 下载地址
- wap手机网页html通过特殊链接:打电话,发短信,发邮件详细教程
- Webmeng分类导航标签,模板
- Webmeng模板路径
- Webmeng内页导航
- Webmeng三级分类
- Webmeng控制器统计实现
- PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展...
- Webmeng配置字段调用
- 调用Webmeng统计数据
- PHP单页统计方法
- .PHP后缀去除方法
- WebmengSAAS 商品管理 - 新增商品
- Webmengshop 支付宝配置
餐厅介绍
自助餐厅
用户评论