- 博客(36)
- 收藏
- 关注
原创 TP5源码分析-执行应用【图解】
文章目录分析上图展望分析public\index.php【执行应用并响应】Container::get(‘app’)->run()->send();接下来我们要分析前半句执行应用部分Container::get(‘app’)->run()上图展望接下来的时间里我们来玩玩$this->initialize() ;这也是个大活, 期待吧!!!...
2020-06-29 20:27:21 419
原创 TP5源码分析-加载基础文件【注册类库别名】
文章目录分析用法分析注册类库别名 这里注册的别名用的时候 new 别名就可以了Loader::addClassAlias([ 'App' => facade\App::class, 'Build' => facade\Build::class, 'Cache' => facade\Cache::class, 'Config' => facade\Config::class, 'Cookie' =>
2020-06-29 19:44:32 226
原创 TP5源码分析-加载基础文件【Loader类入口register函数分析5】
文章目录分析总结分析上一节把register第五步分析了 这一节我们分析第一步和第二步我还是把源码附上public static function register($autoload = '') { // 【1】注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); $rootPath = self::getRootPath(
2020-06-29 19:29:35 157
原创 获取内存使用和CUP使用情况
memory_get_usage() 获取内存使用getrusage() 返回CUP使用情况PHP内置函数 memory_get_usage() 能返回当前分配给PHP脚本的内存量,单位是字节(byte)。在WEB实际开发中,这些函数非常有用,我们可以使用它来调试PHP代码性能。memory_get_usage() 函数返回内存使用量,memory_get_peak_usage() 函数返回内存使用峰值,getrusage()返回CUP使用情况。但有一点请注意,在这些函数需要在Linux上运行。下面
2020-06-29 18:34:58 287
原创 获取目录函数
1、 getcwd() 2、__DIR__3、__FILE__4、dirname()getcwd() 得到的是当前工作目录的路径,(对到一般的框架就是 得到的index.php 的目录路径)__DIR__ 得到的是当前文件所在的目录路径。 __FILE__ 和__DIR__一样,得到的是带有文件名的dirname(__FILE__)由两部分组成:__FILE__ 魔术变量和 dirname() 函数。实例打印结果...
2020-06-29 18:25:09 198
原创 常用数组函数
1 、array_column()array_column(array,column_key,index_key);$arr = [ [ 'id' => 1, 'name' => 'a' ],[ 'id' => 2, 'name' => 'b', ], [ 'id' => 4, 'name' => 'c' ], [ 'id
2020-06-29 18:11:13 368
原创 array_change_key_case 函数
定义和用法array_change_key_case() 函数将数组的所有的键都转换为大写字母或小写字母。实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");print_r(array_change_key_case($age,CASE_UPPER));?>打印结果Array([PETER] => 35[BEN] => 37[JOE] => 43)第二个参
2020-06-29 18:07:21 135
原创 parse_ini_file 函数
定义和用法parse_ini_file() 函数解析一个配置文件(ini 文件),并以数组的形式返回其中的设置。语法parse_ini_file(file,process_sections)参数描述file必需。规定要检查的 ini 文件。process_sections可选。如果设置为 TRUE,则返回一个多维数组,包括了配置文件中每一节的名称和设置。默认是 FALSE。提示和注释提示:本函数可以用来读取您自己的应用程序的配置文件,与 php.ini 文
2020-06-29 17:36:20 245
原创 TP5源码分析-加载基础文件【Loader类入口register函数分析4】
文章目录1、分析2、举例3、反三1、分析上一节把registe第四步分析了 这一节我们分析第五步我还是把源码附上 public static function register($autoload = '') { //【1】 注册系统自动加载 //【2】 Composer自动加载支持 // 【3】注册命名空间定义 // 【4】加载类库映射文件 // 【5】自动加载extend目录 sel
2020-06-27 11:28:38 158
原创 TP5源码分析-加载基础文件【Loader类入口register函数分析3】
上一节把registe第三步分析了 这一节我们分析第四步我还是把源码附上 public static function register($autoload = '') { //【1】 注册系统自动加载 //【2】 Composer自动加载支持 // 【3】注册命名空间定义 // 【4】加载类库映射文件 if (is_file($rootPath . 'runtime' . DIRECTORY_SEPARA.
2020-06-27 11:14:31 181
原创 TP5源码分析-加载基础文件【Loader类入口register函数分析2】
文章目录1、主要分析跳转后最终达到什么效果2、举例说明问题3、举一反三1、主要分析跳转后最终达到什么效果上一节我大概把register分为了五步 这一节我们从简单的开始 从第三步开始我还是把源码附上public static function register($autoload = '') { // 【1】注册系统自动加载 // 【2】Composer自动加载支持 // 【3】注册命名空间定义 self::addNames
2020-06-27 10:31:56 359
原创 TP5源码分析-加载基础文件【Loader类入口register函数分析1】
注册自动加载机制 入口函数 里面干的活 我分为五部【1】…【5】//注册自动加载机制 入口函数 里面干的活 我分为五部 public static function register($autoload = '') { // 【1】注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); $rootPath = self::get.
2020-06-27 09:26:28 352
原创 TP5源码分析-加载基础文件【Loader主要功能图解】
把loader主要的功能提取出来,从属性和方法着手,大致可以分为这些上图说明一切接下来我们就要刨根问底,走进去看看Loader类里面到底是个什么鬼附上源码<?phpnamespace think;use think\exception\ClassNotFoundException;class Loader{ /** * 类名映射信息 * @var array */ protected static $classM..
2020-06-27 08:18:55 335
原创 TP5源码分析-加载基础文件
加载基础文件全在base.php这个文件之中thinkphp\base.php附上图解附上源码<?phpnamespace think;// 载入Loader类require __DIR__ . '/library/think/Loader.php';// 注册自动加载Loader::register();// 注册错误和异常处理机制Error::register();// 实现日志接口if (interface_exists('Psr\Log\Logge.
2020-06-27 07:23:53 281
原创 深入解析 composer 的自动加载原理
https://segmentfault.com/a/1190000014948542?utm_source=tag-newest
2020-06-26 23:01:55 243
原创 PHP中闭包Closure::bind详解
参考 :https://blog.csdn.net/qq_27718961/article/details/91043221<?php class A{ private $name = '王力宏'; protected $age = '30'; private static $weight = '70kg'; public $address = '中国'; public static $height = '180c
2020-06-26 22:45:44 138
原创 psr-0 和 psr-4的区别
composer同时兼容这两种规范, 但是这两者有什么区别呢?比如说在composer.json中我这样定义了:{ "autoload": { "psr-4": { "liangzai\\": "./src/" } }}那我使用 use liangzai\testClass, 那就对应src/testClass.php.使用use liangzai\test\testClass, 那就对应src/test/testCl.
2020-06-26 21:21:48 596
原创 PSR-0规范到底是个什么鬼
官网地址社区翻译文章目录规范说明稍微解释一下实战小demo总结规范说明一个完全合格的namespace和class必须符合这样的结构:“< Vendor Name>(< Namespace>)*< Class Name>”每个namespace必须有一个顶层的namespace(”Vendor Name”提供者名字)每个namespace可以有多个子namespace当从文件系统中加载时,每个namespace的分隔符(/)要转换成 DIRECTORY_
2020-06-26 17:28:19 502
原创 【在绝望中寻找希望】读后感
作者 俞敏洪文章目录经典句子感悟经典句子生命中充满了选择,你的选择不仅和你的心情相关,也和你的命运相关。你只要选择积极的、努力的、向上的生活和工作方式,你的命运就一定会越来越好;如果你选择消极的、被动的、懒散的生活和工作方式,你的命运就注定了会越来越糟读古文要在深夜,点上一根蜡烛,沏上一杯清茶,一字一句地慢慢读、慢慢品味;读诗歌最好是在雨天,听着窗外的雨声,轻轻把诗歌读出来融入雨中,想着诗人悲惨的命运,读着诗歌中的梦绕魂牵,不禁悲从中来,号啕大哭;读小说你还需要选择不同的地点,在野外或湖边或..
2020-06-25 20:53:15 672
原创 培训班出来的程序员现在怎么样了
文章目录0、前言1、刚出茅庐2、南下广州3、踏上北漂4、紧张的培训4、两进两出5、站稳脚跟6、奋斗至今7、一些收获0、前言大多数刚出校门的同学,都有过迷茫。因为少数家里有矿的除外。都是必然要经历的过程。迷茫之后,当然都会作出选择,因为年轻,我们都可以有很多选择。时光荏苒,我们既然最后选择了,就不要管那么多,只顾风雨兼程,剩下的就交给上天。本文有点啰嗦,都是自己的亲身经历。也只是一个普通人的经历,也没有成为一匹黑马,还是一样默默的工作,希望对正在迷茫的你一点点鼓励,不放弃,不气馁。1、刚出茅庐那时候的
2020-06-25 17:54:01 17320 86
原创 歌曲改编【码农泪】
码农泪 作词:亮仔IT哥 一步踏错终身错 北漂敲代码为了生活 码农也是人 心中的痛苦向谁说 为了生活的逼迫 颗颗泪水往肚吞落 难道这是命 注定一生就那光棍过 鼠标摇呀摇 键盘敲啊敲 灵魂早已随风飘 深夜凌晨上线 I’ll fuck
2020-06-24 09:24:51 351
原创 TP5源码分析-入口
文章目录一、提前交代二、入口一、提前交代本系列基于thinkphp5.1.39 LTS 版本分析,可以去官网下载。采用图片加代码的方式去分析源码,旨在自己对thinkphp5有一个全新的认识。经过前些篇章的前置知识的复习,今天终于要揭开她的神秘面纱了,表着急,我会一个星期更新一遍。本系列还是会从先使用后分析的角度出发,这样目标性才会更强烈,知道我们平时用的东西的来龙去脉。别的不多说,第一次不用整那么复杂上图即可。注:图片的内的路径都是基于根目录二、入口...
2020-06-23 12:19:41 346
原创 TP5源码分析前置知识-注册树模式
文章目录一、白话解释一下二、看看代码吧三、TP5中的容器四、叨叨一下一、白话解释一下所谓注册树也就是在一棵树上种上果子(对象),吃的时候直接在树上去摘,是不是很方便了二、看看代码吧class Register{ public static $obj = []; public static function set($type,$obj) { self::$obj[$type] = $obj; } public static fun
2020-06-20 17:42:05 217
原创 【断舍离】读后感
作者简介:山下英子,生于东京,日本早稻田大学文学部毕业。颠覆百万人生活方式的史上最强人生整理概念“断舍离”创始人。大学期间开始学习瑜伽,并通过瑜伽参透了放下心中执念的修行哲学“断行,舍行,离行”,随后便不遗余力地致力于提倡以这种概念为基础的、任何人都能亲身实践的新整理术——断舍离。作者:山下英子文章目录一、主要内容摘要二、亮仔感想一、主要内容摘要第1章 你之所以无法放手的原因有一个需要切实认清的现实:我们身处“物质过剩”的世界。明白自己“不能收拾家务”的心理机制,重新审视自我的物质观,.
2020-06-19 22:51:44 427
原创 TP5源码分析前置知识-【源码分析顺序】
文章目录一、说明一、架构预览二、叨叨叨叨.....一、说明我会按照这个顺序逐个分析源码,很期待,想想都鸡冻一、架构预览入口文件应用路由模块控制器操作模型视图模板引擎驱动行为中间件助手函数二、叨叨叨叨…学习框架首先得会使用而且熟练使用,一般我们在项目中使用可能用的功能有限,一般的功能就足以应付我们的项目了,我觉的应该参照文档逐个去自己试试,有了结果我们再去探索里面的内容,这样循序渐进就能很好的掌握一种框架,从而就可以迁移到其他的框架中去。...
2020-06-14 21:27:27 167
原创 PHP隐藏的坑
转自 :https://blog.csdn.net/oudahe/article/details/80661364?ops_request_misc=&request_id=&biz_id=102&utm_term=PHP%E4%BB%A3%E7%A0%81%E6%8A%80%E5%B7%A7&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-80661364..
2020-06-14 21:13:21 196
原创 TP5源码分析前置知识-简单工厂模式
一、白话解释一下所谓工厂就是为不同客户生产不同的玩意,那么程序里面的工厂有着异曲同工之妙,例如你要new 车相关的类 ,是不是每种车要自己去new? 现在我换种做法,我们把new的过程交给工厂去干,我只要告诉你类型,你就给我new什么。二、看看最简单的工厂demo用工厂之前class Car{}class Bike{}class Bus{}$catObj = new Car();$bikeObj = new Bike();$catObj = new Bus();
2020-06-14 16:41:30 610
原创 TP5源码分析前置知识-单例模式
文章目录一、基本概念二、未使用单例模式的情景三、demo小作四、使用场景一、基本概念单例模式也就是说一个类在一个进程中一次实例化生成全局唯一的实例二、未使用单例模式的情景class Car{ public function __construct() { }}$c1 = new Car();var_dump($c1);echo '<br>';$c2 = new Car();var_dump($c2);打印结果:object(Car)#1 (0) { }
2020-06-14 16:06:06 350
原创 一个湖北程序员的回京之难
文章目录0.背景介绍1.买票不易2.转车的波折3.隔离生活4.突来的惊喜0.背景介绍本人身居湖北恩施的一个小县城下面的一个小镇下面的一个小村,今年受到疫情的影响,我们湖北人引起了全世界人民的关注。身为湖北人,我很骄傲(得意的笑了笑哈哈哈)。我在北京工作,进京之难可想而知。在家从1月18号一直待到了5月29号。索性公司也比较人性化,容许我在家远程办公。这半年我过着悠然见南山的生活。和家人生活在一起的快乐,有时间陪伴孩子,真正的感觉到什么才叫生活。慢慢的公司也开始催着回公司了,一直等到5月10号北京解离湖北
2020-06-14 15:05:02 431
原创 微信文档大全
微信公众平台https://mp.weixin.qq.com/微信开放社区https://developers.weixin.qq.com/community/develop/mixflow微信官方文档https://developers.weixin.qq.com/doc/
2020-06-10 23:54:32 365
原创 TP5源码分析前置知识-Countable接口
1、废话稍作唠叨需要统计对象内部某些元素个数 可以用count()函数操作对象 do you see ???2、Countable接口需要实现的方法Countable {/* Methods */abstract public count ( void ) : int}3、小作democlass CountMe implements Countable { protected $_myCount = 3; public function count()
2020-06-09 12:48:33 131
原创 TP5源码分析前置知识-ArrayAccess接口
1、废话稍作唠叨对象可以像数组一样使用下标操作2、ArrayAcess接口需要实现的的方法ArrayAccess {/* Methods */#检查偏移位置是否存在abstract public offsetExists ( mixed $offset ) : bool#获取一个偏移位置的值abstract public offsetGet ( mixed $offset ) : mixed#设置一个偏移位置的值abstract public offsetSet ( mixed $o
2020-06-09 12:31:43 201 1
原创 TP5源码分析前置知识-API反射机制
1、废话稍作唠叨反射类则是拆封类中的所有方法、成员变量,并包括私有方法等。就如“解刨”一样,所有的反射API类的官方文档地址:https://www.php.net/reflection/2、常用API类常用的反射类类名作用Reflection可以打印类的基本信息,(通过提供的静态export()函数)ReflectionMethod见名知意,打印类方法、得到方法的具体信息等ReflectionClass用于得到类信息,比如得到类包含的方法,类本的
2020-06-07 18:45:01 373
原创 PHP高级特性之--延迟静态绑定:static关键字
百度概念:延迟静态绑定指的是在父类中获取子类的最终状态。在父类中,如果出现self关键字,被子类继承后,这个self值的还是父类而不是子类。如果在父类中出现了self关键字,并且子类继承了含有self的这段代码,那么需要考虑静态延迟绑定。在父类中使用static代替self.1. 先看看用self的情况<?phpabstract class Person{ public static function create(){ self::Talking(); }
2020-06-07 12:59:50 200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人