随笔分类 - 编程语言
摘要:目录结构: 增加model类 \core\lib\model.php <?php namespace core\lib; class model extends \PDO { public function __construct() { $dsn = 'mysql:host=localhost;d
阅读全文
摘要:目录结构: 补充基类: \core\MyFrame.php <?php namespace core; class MyFrame { public static $classMap = []; static function run() { p('ok'); $route = new \core\
阅读全文
摘要:在core目录下,新建一个名为lib的子目录,然后把我们前面写个Route.php这个文件移动到这个目录下。 因为route类文件路径修改,所以在实例化的时候: new \core\lib\route(); 然后我们来完善Route.php: <?php namespace core\lib; cl
阅读全文
摘要:core\MyFrame.php <?php namespace core; class MyFrame { public static $classMap = []; static function run() { p('ok'); $route = new \core\Route(); } st
阅读全文
摘要:首先来了解一下框架的运行流程: 入口文件 -> 定义常量 -> 引入函数库 -> 自动加载类 -> 启动框架 -> 路由解析 -> 加载控制器 -> 返回结果 入口文件 index.php <?php /* * 入口文件 * 1.定义常量 * 2.加载函数库 * 3.启动框架 */ //定义框架根目
阅读全文
摘要:首先来了解一下框架的运行流程: 入口文件 -> 定义常量 -> 引入函数库 -> 自动加载类 -> 启动框架 -> 路由解析 -> 加载控制器 -> 返回结果 入口文件 index.php <?php /* * 入口文件 * 1.定义常量 * 2.加载函数库 * 3.启动框架 */ //定义框架根目
阅读全文
摘要:使用SPL_AUTOLOAD_REGISTER装载类 <?php /** * libs/Test.class.php */ class Test { function __construct() { # code... echo 'loading class libs/Test.class.php\
阅读全文
摘要:ArrayIterator 熟悉使用seek()跳过元素 熟悉使用asort,ksort排序 <?php $fruits = array( 'apple'=>'apple value', 'orange' => 'orange value', 'grape' => 'grape value', 'p
阅读全文
摘要:Iterator 迭代器接口 SPL规定,所有实现了Iterator接口的class,都可以用在foreach Loop中。Iterator接口中包含5个必须实现的方法: interface Iterator extends Traversable{ //返回当前元素 public mixed cu
阅读全文
摘要:数据结构是计算机存储、组织数据的方式。 SPL提供了双向链表、堆栈、队列、堆、降序堆、升序堆、优先级队列、定长数组、对象容器。 基本概念Bottom:节点,第一个节点称Bottom;Top:最后添加的链表的节点称Top;当前节点(Current):链表指针指向的节点称为当前节点; SplDoubly
阅读全文
摘要:1)观察者模式 但一个对象发生改变时,依赖他的对象全部会受到通知,并自动更新场景:一个事务发生后,会执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新的逻辑增多之后,代码会变得难以维护,这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码 观察者模式实现了低耦
阅读全文
摘要:1)第一种方法 <?php /* *类功能:实现数据库的连贯查询操作 */ class mysql_query{ var $tbl=’user’;//要操作的表名 var $limit=”;//存储limit语句的变量 var $order=”;//存储order语句的变量 var $sql=”;/
阅读全文
摘要:目录结构 1)适配器模式可以将截然不同的函数接口封装成统一的API ,实际应用举例,php的数据库操作有mysql,mysqli,pdo 3种,可以用适配器模式统一成一致。类似的场景还有cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致。 实现方式,定义统
阅读全文
摘要:1)工厂模式 工厂模式是用工厂方法生成对象,而不是直接new一个对象。假设我们在Config命名空间下有一个名叫Db的数据库操作类,用普通的方法,如果我们想去创建一个Db的对象,我们会直接new一个出来。 $db = new \Config\Db(); 工厂模式就是用一个工厂方法替换掉直接new一个
阅读全文
摘要:PSR-0规范 命名空间必须与绝对路径一致 类名首字母必须大写 除去入口文件外,其他“.php”必须只有一个类 类文件必须自动载入,不采用include等 单一入口 1)目录结构 2)代码 入口文件index.php <?php define('BASEDIR',__DIR__); require_
阅读全文
摘要:PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG,它的网站是:www.php-fig.org。就是这个联盟组织发明和创造了PSR-[0-4]规范,FIG 是 Framework Interoperability Group(框架可互用性小组
阅读全文
摘要:1)HTML HTTP是无状态、单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应。若要实现聊天室、WEBQQ、在线客服、邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)”。 传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。种这种
阅读全文
摘要:<html> <title>图片预加载</title> <body> <script> //判断浏览器 var Browser=new Object(); Browser.userAgent=window.navigator.userAgent.toLowerCase(); Browser.ie=/
阅读全文
摘要:1) ARRAY_FILTER — 用回调函数过滤数组中的单元 function odd ( $var ) { // returns whether the input integer is odd return( $var & 1 ); } function even ( $var ) { //
阅读全文
摘要:/** * 安全IP检测,支持IP段检测 * @param string $ip 要检测的IP * @param string|array $ips 白名单IP或者黑名单IP * @return boolean true 在白名单或者黑名单中,否则不在 */ function is_safe_ip(
阅读全文