
框架
懵懂and无知
= = 学好php 走遍天下
展开
-
mvc路由类的编写
一、完成路由类1)创建一个存放其他类的文件夹将我们创建好的类存放进去 然后将调用这个类的路径进行修改2)当我们的网址是www.xxx.com/index/index是我们想要将他访问的路径改为index控制器以及index方法3) 首先我们要隐藏index.PHP, 获取路径的参数部分 返回相应的控制器与方法名4)我们要在根目录下创建一个.htaccess的文件 内容如下: 这个伪静态配置原创 2016-12-24 13:24:45 · 32081 阅读 · 1 评论 -
乐观锁与悲观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁原创 2017-02-19 21:23:56 · 198 阅读 · 0 评论 -
大型网站系统的特点 优化方向
大型网站系统的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展网站使用的缓存可以分为两种: 一种是在应用服务器上的本地缓存 第二种是在专门的分布式缓存服务器上的远程缓存 本地缓存速度快一些,但是收到应用服务器内存的限制, 远程分布是缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器 可以做到理论的转载 2017-02-19 20:43:25 · 1666 阅读 · 1 评论 -
数据库三范式 简单理解
总归来说,简单来说 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖;解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖;原创 2017-01-10 09:35:16 · 407 阅读 · 0 评论 -
mvc配置类(日志类)的编写
一、日志类 日志类是我们所有框架中不可缺少的,我们的日志分很多,有的日志类存在数据库中,存在缓存中,很多的。现在我们写的这个是存在文件中。首先呢,我们需要确定下日志的存储方式。 我们需要现在lib里面创建几个目录,将所有的驱动文件都放到lib下的drive里面, 之后呢在drive里面创建我们的日志 如下图: 其中 file 是我们的文件系统 如下:class file { pub原创 2016-12-25 20:32:32 · 40116 阅读 · 0 评论 -
php封装一个简单的MVC框架
我们先讲讲MVC的大概 1、mvc的简介 mvc全名是model view Controller,是模型(model)、视图(view)、控制器(controller)的缩写,是一种软件设计典范,将业务逻辑被聚集到一 个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。 2、学习mvc的目的 (1)快速上手各种大主流ph原创 2016-12-24 10:33:07 · 34276 阅读 · 0 评论 -
mvc配置加载类
一、配置加载类1)首先我们要新建一个配置类,由于配置类经常会被用到,所以我们将他写成静态方法,我们需要俩个参数一个是我们就要加载的配置的名称,第二个就是我们要加载的文件,然后我们将它对应的文件放在config文件当中,然后在这个配置文件当中去定义我们在默认情况下的路由,在定义方法名与控制器名。 class conf { static $conf = array();//将配置文件放入$c原创 2016-12-24 14:01:59 · 32136 阅读 · 0 评论 -
mvc加载控制器、模型类以及视图类编写
一、加载控制器1)首先我们要创建一个app的文件夹在创建一个控制器的文件夹在里面创建一个index的控制器 由于类名和方法名重复的时候会使方法成为一个初始化的方法 那么解决的办法是将类名后面加一个Controller,这样就能避免发生类似的问题 如下: 2)然后我们在加载控制器的编码部分 首先我们用一个变量存放我们对应的控制器 然后再判断控制器是否存在(在拼接的时候一定要看清路径不然会报错误),原创 2016-12-24 13:54:46 · 20105 阅读 · 0 评论 -
mvc类自动加载的编写(二)
一、自动加载类1)将自动加载方法放到基本类中2)模拟工作原理如何调用类 调用类须要有三个步骤 首先我们要用到一个方法 方法名为 /*当类不存在触发这个方法*/ spl_autoload_register('类的路径');(须要引入命名空间) 3)将接过来的值中的反斜线改为正斜线用到的方法是: $class=str_replace('\\','/', 接过来的值);(因为输入原创 2016-12-24 10:49:26 · 31062 阅读 · 0 评论 -
mvc入口文件的编写(一)
一、入口文件的编写 1)首先要创建一个入口文件 例如:index.PHP 2 ) 要确定入口文件将要做什么 <?php /** * 入口文件 * 1、定义常量 * 2、加载函数 * 3、启动框架 */ /*获取当前目录*/ define('IMOOC',realpath('')原创 2016-12-24 10:39:20 · 32864 阅读 · 0 评论 -
秒杀活动
秒杀活动的技术挑战对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,这个活动具有时间多,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有的业务造成冲击,稍有不慎可能导致整个网站的瘫痪 2. 高并发下的应用、数据库负载 用户在秒杀活动开始前,通过不停的刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务原创 2017-02-19 21:14:40 · 565 阅读 · 0 评论