thinkphp源码无差别阅读(一)
thinkphp源码无差别阅读(一)
thinkphp的framework源码大概165个文件,我们不按照逻辑分析阅读源码,我们一个文件一个文件阅读,阅读完以后有个大概了解,然后在运行逻辑下进行阅读framework阅读App.php阅读常量:VERSION-定义框架版本号属性:$appDebug、envName、beginTime、beginRem、namespace、rootPath、thinkPath、appPath、runtimePath、routePath、configExt、initializers、services、initialized、bind构造方法:__construct注册服务:register执行服务:bootService获取服务:getService设置调试模式:debug是否调试模式:isDebug设置应用命名空间:setNamespace获取应用命名空间:getNamespace设置环境变量标识:setEnvName获取框架版本:version获取应用根目录:getRootPath获取应用基础魔力:getBasePath获取当前应用目录:getAppPath设置应用目录:setAppPath获取应用运行目录:getRuntimePath设置应用运行目录:setRuntimePath获取框架核心目录:getThinkPath获取应用配置目录:getConfigPath获取配置后缀:getConfigExt获取用于开启时间:getBeginTime获取应用初始内存占用:getBeginRem加载环境变量:loadEnv初始化应用:initialize是否初始化:initialized加载语言包:loadLangPack引导引用:boot加载应用文件和配置:load调试模式设置:debugModeInit注册应用事件:loadEvent解析应用类名:parseClass是否在命令行下运行:runningInConsole获取应用根目录:getDefaultRootPathCache.php阅读属性:namespace获取默认驱动:getDefaultDriver获取缓存配置:getConfig获取驱动配置:getStoreConfirm未知:resolveType未知:resolveConfig连接获取切换缓存:store清空缓存池:clear读取缓存:get写入缓存:set删除缓存:delete读取缓存:getMultiple写入缓存:setMultiple删除缓存:deleteMultiple判断缓存是否存在:has缓存标签:tagConfig.php阅读属性:config、path、ext构造方法:__construct未知:__make加载配置文件:load解析配置文件:parse判断配置是否存在:has获取一级配置:pull获取配置:get设置配置:setConsole.php阅读属性:app、commands、wantHelps、catchExceptions、autoExit、definition、defaultCommand、defaultCommands、startCallbacks构造方法:__construct初始化:initialize构造request:makeRequest添加初始化器:starting清空启动器:flushStartCallbacks设置执行用户:setUser启动:start加载指令:loadCommands未知:call执行当前指令:run执行指令:doRun设置输入参数:setDefinition获取输入参数:getDefinition获取帮助:getHelp是否捕获异常:setCatchException是否自动退出:setAutoExit获取完整版本号:getLongVersion添加指令集:addCommands添加指令:addCommand获取指令:getCommand判断指令是否存在:hasCommand获取所有的命名空间:getNamespaces查找命名空间的名称或缩写:findNamespace查找指令:find获取所有指令:all配置输入输出:configurateIO执行指令:doRunCommand获取指令的基础名称:getCommandName获取默认输入:getDefaultInputDefinition获取建议:getAbbreviationSuggestions返回命名空间部分:extractNamespace查找可替代建议:findAlternatives返回所有命名空间:extractAllNamesapcesContainer.php属性:instance、instances、bind、invokeCallback获取当前容器实例:getInstance设置当前容器实例:setInstance注册一个容器对象回调:resolving获取容器中的对象实例:pull获取容器中的对象实例:get绑定类、闭包、对象、接口到容器:bind根据别名获取类真实的名字:getAlias绑定一个类实例到容器:instance判断容器中是否存在类和标识:bound判断容器中是否存在类和标识:has判断容器中是否存在类和标识:exists创建类实例,单例:make删除容器中的对象实例:delete执行函数或者闭包:invokeFunction执行反射类的方法:invokeMethod执行反射类的方法:invokeReflectMethod调用反射执行callable:invoke调用反射,执行类的实例化:invokeClass执行invokeClass回调:invokeAfter绑定参数:bindParams创建工厂对象实例:factory获取对象类型的参数值:getObjectParam魔术方法和数组是访问:__set、__get、__isset、__unset、offsetExists、offsetGet、offsetSet、offsetUnset、count、getIterator计划阅读
[ ] framework源码
[ ] orm源码
[ ] helper源码留言
点击「链接」
互联网时代,如何正确抓住风口互联网时代,越来越多的人开始利用网络进行变现。小到传统微商的零售,也就是常见的一件代发。做得规范的也为品牌做了专门的系统,对代理进行公司化系统化的管理。不管是医美行业大健康行业,还
华为P60实现突破!完全国产化但芯片只有14nm,你会支持吗?华为如果推出全国产化的手机,我坚决支持购买!因为虽然是14um芯片,硬件已经够用了,主要是提升鸿蒙系统的生态!一定支持,首先是质量很好,其次是支持国货。我从P9,P10,到P20p
妙招!您必须了解的宽带使用小常识下班后追剧宽带断网可不是件开心的事在这里我给大家介绍一下宽带日常排障小常识让你快速解决,上网无忧!无线路由器排障指南手机电脑不能上网了第一步确认是否欠费停机或宽带到期第二步查看是电
库克可能也没料到,发布三个月下跌700元,新款iPhone一降再降最关心苹果手机销量的人可能就是库克了,苹果手机销量的好坏决定了苹果手机的营收,甚至可以影响到苹果公司的市值,而作为苹果公司CEO,库克是最主要的负责人,所以库克对苹果手机的销量极其
2021,这些人,那些事2021年,世界焦点人物继续吸引着众人的目光。有人春风得意,有人黯然谢幕,有人创造了历史,有人失败后开始重操旧业。2021年转瞬即逝,这些或熟悉或新鲜的面孔会让你想起哪些故事?马斯
苹果XS相比苹果X哪个好?首先你这个问题我肯定得答复你是iPhoneXS更好我们来看一下这两款机器首先,IPhoneX和iPhoneXS两只两款机器外观基本上一模一样,只有略微的差别,IPhoneXS的话,
情侣之间明明都想聊天但是没话题怎么办?这个问题本身感觉是很矛盾的,但是既然问出来,肯定是某一方在乎另一方,想要改变与ta相处时的状态,所作出的一份努力。在我看来,首先,要看你们在一起了多长时间,在一起很久了的话,比如一
冰箱美的和海尔怎么选?冰箱选购注意事项主要有以下几点1冰箱星级。目前我国生产的冰箱有单门二星级,双门三星级和四星级。星级越高,质量档次就越高。单门冷冻一般为12。双门冷冻在1824之间。2认清铭牌。铭牌
苹果的擦屏布卖145,到底值这个价钱吗?仅从擦屏布本身价值来讲,这个价格当然高的离谱,但苹果毕竟是国际知名品牌,定价时将品牌价值适当核算一部分进来也是理所当然。但总的来讲这块小布是让人拿来用的,不是让人拿来显摆的,定这么
接口的幂等性的多重考虑,你会了吗?前言今天的主题接口幂等性的解决方案。本来是想把对象的存储过程和内存布局肝出来的,但是临时产生了变化,哈哈,这部分内容我们留在下一期吧,有句话说的好,好事多磨,对吧。在实际项目开发中
面对华为Mate40Pro与三星GalaxyNote20Ultra你会怎么选有点意思,同样是去年差不多时间发布的综合旗舰产品,目前敞开卖的华为Mate40Pro5G价格与三星GalaxyNote20Ultra相差不大,你会选择保值率更高的Mate还是屏幕更