一步步搭建自己的轻量级MVCphp框架-(三)一个国产轻量级框架Amysql源码分析(2) 进程
Amysql类 按照我的理解这就是框架的初始化
上代码
class Amysql {
    public $AmysqlProcess;
    public function Amysql()
    {
        global $Config;
        ini_set("magic_quotes_runtime", false);
        ($Config['DebugPhp'] && error_reporting(E_ALL)) || error_reporting(0);                        // 是否报错
        ($Config['SessionStart'] && session_start());                                                // SESSION
        (!empty($Config['CharSet']) && header('Content-type: text/html;charset=' . $Config['CharSet']));
    }
    static public function AmysqlNotice($notice)
    {
        $AmysqlController = new AmysqlController();
        $AmysqlController -> notice = $notice;
        include(_Amysql . 'AmysqlNotice.php');
        exit();
    }
    static public function filter(&$array, $function)
    {
        if (!is_array($array)) Return $array = $function($array);
        foreach ($array as $key => $value)
            (is_array($value) && $array[$key] = Amysql::filter($value, $function)) || $array[$key] = $function($value);
        Return $array;
    }
}
这个类包含一个公有属性AmysqlProcess和包括构造函数Amysql在内的三个函数
一、Amysql():这个函数是本类的构造函数,其实按照现在的写法就是__construct()。
① magic_quotes_runtime:作用就是将外部引入的特殊字符[单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)]加上反斜线给转移掉,但是这个在php5.3中已经废弃了,不太建议使用。
② error_reporting:设置PHP错误级别
    /*错误级别
    * fatal error致命错误:1
    * warning 警告错误:2
    * NOTICE 警告:8
    * 全部开启:11
    * 全部关闭:0
    */
③ 说明一下&& || 的写法,&&是要求这个标识符前后都得是真,||表示它的前后有一个是真就可以。
当$Config['DebugPhp']为真的时候那么&&就会继续执行error_reporting(E_ALL),将错误级别设置成显示所有错误,又有||前面的已经执行,那么后面的就不会再执行了。当$Config['DebugPhp']为假的时候||前面的为假,所以就会执行后面的error_reporting(0)将错误显示级别设置成不显示错误。
二、AmysqlNotice():这个函数的作用就是显示错误提示
①在这里面使用AmysqlController类创建的对象AmysqlController并没有发现它有什么卵用。。
②引入一个外部的文件,AmysqlNotice.php,这个文件里面是一段HTML代码,用于显示错误提示,后面的exit是用来在错误提示输出后停止脚本运行。
下面是错误提示的HTML代码,也没有什么分析的~O(∩_∩)O哈哈~
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body {margin: 0px;}
#confirm {background:rgba(125,125,125,0.4);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr=#40000000, endColorstr=#40000000);width:500px;margin:30px auto 0px auto;border:solid 1px #666;border-radius:3px;}
#confirm #inside {background:#FFFFFF;margin:5px;height:230px;border-radius:3px;}
#confirm #inside h1 {margin: 0px;font-family: Verdana, Geneva;font-size: 13px;padding:5px 10px;background-color: #f0f0f0;border:solid 1px #ddd;display: block;}
#confirm #inside #content {width: 300px;margin:25px auto 0px auto;line-height: 30px;font-size: 15px;font-family: Verdana, Geneva, sans-serif;}
</style>
</head>
<body>
<div id="confirm">
<div id="inside">
<h1>错误提示</h1>
<div id="content"><center><?php echo $notice ?></center></div>
</div>
</div>
</body>
</html>
三、filter(&$array, $function):这个函数的作用就是使用$function这个变量所代表的的函数将$array这个变量代表的值给进行转换。
比如:
Amysql::filter($_GET, 'addslashes')
这句代码就是使用addslashes()将$_GET变量的值进行转义。这个函数在内部将$array按照是否为数组来检测是否进行递归调用自己来进一步转换。
此上就是对Amysql类的分析,下一节将继续讲述AmysqlProcess总进程对象类
一步步搭建自己的轻量级MVCphp框架-(三)一个国产轻量级框架Amysql源码分析(2) 进程的更多相关文章
- 一步步搭建自己的轻量级MVCphp框架-(二)一个国产轻量级框架Amysql源码分析(1)
		这个框架是我一个做PHP的朋友“祥子”介绍给我的,Git地址https://coding.net/u/srar/p/AMP/git 下面从入口文件 总线程 ( index.php )开始进行分析 &l ... 
- 一步步搭建自己的轻量级MVCphp框架-(四)一个国产轻量级框架Amysql源码分析(3) 总进程对象
		AmysqlProcess类,框架的总进程对象 ./Amysql/Amysql.php 下面还是和以前一样,先上代码~ class AmysqlProcess { public $AmysqlCont ... 
- Python的Django框架完成一个完整的论坛(源码以及思路)
		一个完整的论坛,登录.注册.发表.头像.点赞.评论.分页.阅读排行等 使用Django2,Python3.5 开发工具:Pycharm5 需要的知识:Python基础知识,Django原理的理解以及使 ... 
- 框架-spring源码分析(一)
		框架-spring源码分析(一) 参考: https://www.cnblogs.com/heavenyes/p/3933642.html http://www.cnblogs.com/BINGJJF ... 
- Django搭建及源码分析(三)---+uWSGI+nginx
		每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ... 
- Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
		接上一篇 dubbo-server 之后,再来看一下 dubbo-client 是如何工作的. dubbo提供者服务示例, 其结构是这样的!dubbo://192.168.11.6:20880/com ... 
- 一步步实现windows版ijkplayer系列文章之六——SDL2源码分析之OpenGL ES在windows上的渲染过程
		一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ... 
- Android源码分析(五)-----如何从架构师的角度去设计Framework框架
		一 : 架构与程序 软件架构是一种思维方式,而程序只是实现思维方式的一种手段,代码固然重要,但是若没有整体的思维架构,一切程序都如水中浮萍. 二 : 框架如何设计 暂时抛开Android Framew ... 
- 模块化系列教程 | 深入源码分析阿里JarsLink1.0模块化框架
		1. 概述 1.1 模块动态加载卸载主流程 2. 模块动态加载 2.1 模块加载源码分析 2.1.1 AbstractModuleRefreshScheduler 2.1.2 ModuleLoader ... 
随机推荐
- CloudStack服务引擎配置(cloud-engine-service模块)
			"?> <!--CloudStack服务引擎配置--> <beans xmlns="http://www.springframework.org/schem ... 
- vs2012 + web api + OData + EF + MYsql  开发及部署
			先说下我的情况,b/s开发这块已经很久没有搞了,什么web api .MVC.OData都只是听过,没有实际开发过,因为最近要开发一个手机app的服务端,所以准备用这套框架来开发. 下面开始进入正题( ... 
- 全代码实现ios-1
			第一次接触ios开发时,就决定用代码开发,而不用ib.因为被ib的各种控件的联线弄得一头雾水,而且ib和storyboard变动太快了. 开始的时候真是麻烦,因为网上关于全代码开发的例子太少了,大多数 ... 
- 汽车常用的ECU芯片
			Power Train ECU的CPU用的比较多的基本来自于Infineon,ST,Freescale BOSCH的16位ECU M(E)7系列主要使用C167内核的CPU,早期的M(E)7系列使用西 ... 
- PL/pgSQL学习笔记之十一
			http://www.postgresql.org/docs/9.1/static/plpgsql-declarations.html 39.3.4. Row 类型 name table_name%R ... 
- Sublime Text 2 快捷键大全
			Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行( ... 
- iOS设置某个界面强制横屏,进入就横屏
			最近有一个项目,例如:A界面跳转到B界面,A界面是竖屏的,B界面进入就要横屏. 花了半天的时间在网上搜索解决方案,有些论坛的大牛也就贴两行代码,具体实现也没有,对我们这种菜鸟造成一万点真实伤害.为了避 ... 
- Myeclipse如何改变编码方式
			Windows---->Preferences---->myeclipse Enterprise Workbench---->File and Editors----->JSP ... 
- discuz+ecmall+phpcms整合
			所需软件 discuzx1.5 (包含ucenter1.5) ecmall2.3 phpcms v9.5 1.先安装discuz1.5 2.然后安装ecmall2.3 3.最后安装phpcms v9. ... 
- 【JavaScript】Object.observe()带来的数据绑定变革
			Object.observe()带来的数据绑定变革 引言 一场变革即将到来.一项Javascript中的新特性将会改变你对于数据绑定的所有认识.它也将改变你所使用的MVC库观察模型中发生的修改以及更新 ... 
