自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(218)
  • 收藏
  • 关注

原创 laravel 基础面试题—php--自动加载

1. 让我们为 PHP 创建枚举,提供一些代码示例如果我们的代码需要对枚举常量和值进行更多验证,该怎么办?根据使用情况,我通常会使用类似以下的简单内容:abstract class DaysOfWeek{ const Sunday = 0; const Monday = 1; // etc.}$today = DaysOfWeek::Sunday;这是一个扩展的示例,可以更好地服务于更广泛的案例:abstract class BasicEnum { pri

2021-01-04 20:48:23 337 2

原创 【PHP】23 个你应该知道的 Laravel 面试问题

探索下一次技术面试之前应该了解的前20个 Laravel 面试问题。Q1:什么是Laravel?主题: Laravel难度: ⭐Laravel 是一个免费的开放源代码 PHP Web 框架,由 Taylor Otwell 创建,旨在遵循模型-视图-控制器(MVC)架构模式开发 Web 应用程序。Q2: Laravel 与其他 Php 框架相比有哪些好处?主题: Laravel难度: ⭐与其他框架相比,设置和自定义过程既简单又快速。内置认证系统支持多个文件系统预装

2020-12-30 21:35:27 776

原创 【PHP】面试之后才知道,swoole完美支持TP5?!

协程是什么协程可以理解为纯用户态的线程,其通过协作而不是抢占来进行切换,相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低,Swoole 可以为每一个请求创建对应的协程,根据 IO 的状态来合理的调度协程。在 Swoole 4.x 中,协程(Coroutine)取代了异步回调,成为 Swoole 官方推荐的编程方式。Swoole 协程解决了异步回调编程困难的问题,使用协程可以以传统同步编程的方法编写代码,底层自动切换为异步 IO,既保证了编程的简单性,又可借助异步 IO,提升系统

2020-12-28 21:23:33 340

原创 在面试时用php+swoole编写了一个简易聊天室,面试官让我明天来上班!

Swoole:面向生产环境的 PHP 异步网络通信引擎使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。新建PushServer.php<?php/** * Created by PhpS.

2020-12-26 21:37:17 387

原创 【PHP】学习Docker之前,先搞懂这几个问题

1 什么是DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。

2020-12-22 21:31:35 256 2

原创 2020PHP面试题大全【面向对象部分】

1、什么是面向对象?(理解着回答)面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节。面向对象有三大特征:封装性、继承性、多态性。现在纯正的OO语言主要是 Java 和 C#,PHP、C++也支持OO,C是面向过程的。2、简述 private、 protected、 public修饰符的访问权限。private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。publ

2020-12-19 21:49:34 335 2

原创 Laravel为什么会成为最优雅的PHP框架,你知道吗?

Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。模块化和可扩展性Laravel注重代码的模块化和可扩展性。你可以在包含超过5500个程序包的Packalyst目录中找到你想要添加的任何文

2020-12-18 21:00:41 208 1

原创 面试官:swoole 的认识和强大之处你不知道?回去吧!!!

首先 swoole 是 php 的一个扩展程序swoole 是一个为 php 用 c 和 c++ 编写的基于事件的高性能异步 & 协程并行网络通信引擎swoole 是一个多进程模型的框架,当启动一个进程 swoole 应用时,一共会创建 2+n+m 个进程,n 为 worker 进程数,m 为 TaskWorker 进程数,1 个 master 进程和一个 manager 进程,关系如下图所示Master 进程为主进程,该进程会创建 Manager 进程、Reactor 线程等工作进 / 线程

2020-12-14 21:58:56 1017

翻译 PHP 8 的新特性(续)

新增 fdiv() 函数 pr新的 fdiv() 函数的作用类似于fmod() 和 intdiv() 函数,它们可以除以 0。视情况而定,将得到 INF,-INF 或 NAN。新增 get_debug_type() 函数 rfcget_debug_type() 返回变量的类型,听起来好像跟 gettype() 的作用一样啊?get_debug_type() 可以为数组,字符串,匿名类和对象返回更有用的输出信息。例如,在类\ Foo \ Bar上调用 gettype() 将返回 object,而使用

2020-12-12 20:32:28 220

翻译 PHP 8发布啦!来说说PHP 8 的新特性

PHP 8,PHP 的一个新的大版本,预计将于 2020 年 12 月 3 日发布,这意味着将不会有 PHP 7.5 版本。PHP8 目前正处于非常活跃的开发阶段,所以在接下来的几个月里,情况可能会发生很大的变化。在这篇文章中,我会维持一个最新的清单列表,列出预计会出现的新特性、性能提升和突破性的变化。由于 PHP 8 是一个新的大版本,因此您的代码被破坏的可能性更高。如果您始终保持运行 PHP 的最新版本,那么升级相对来说就会轻松很多,因为在 7. * 版本中,大多数重大更改均已弃用。除重大更改外.

2020-12-10 22:07:16 152

原创 2020PHP面试题大全【数据库部分】

常见的关系型数据库管理系统产品有?答:Oracle、SQL Server、MySQL、Sybase、DB2、Access等。SQL语言包括哪几部分?每部分都有哪些操作关键字?答:SQL语言包括数据定义(DDL)、数据操纵(DML),数据控制(DCL)和数据查询(DQL)四个部分。数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等数据操纵:Select ,insert,update,delete,数据控制:grant,revok

2020-12-07 20:33:15 147

原创 为PHP面试而准备的算法题总结,你都会吗?

1、插入排序(一维数组)基本思想:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。示例:[初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J=4(97) [38 49 65 97] 76 13 27 49J=5(76) [38 49 65 76 97] 13 27 49J=6(1

2020-12-05 21:48:05 268

原创 【PHP】你知道MySQL索引为什么要选择B+树呢

声明本文所述的各种数据结构(二叉树等),均不考虑重复值的情况,本文简述各种数据结构的区别仅仅只是为了理解MySQL索引的需要而做的铺垫。什么是索引提起索引,大家都知道,建立索引可以让数据库查询更快,那么索引究竟是什么?我想这就不是每个人都能说得出来了。索引,是数据库管理系统中一个排序的数据结构,并用以协助快速查询、 更新数据库表中数据。是的,索引是一种数据结构,但是那么多的数据结构中为何MySQL要选择B+树呢?接下来就让我们一起来了解下B+树相对于其他数据结构有何独特之处!二分查找法(Bina

2020-12-04 21:27:39 151

原创 Laravel 运行原理分析与源码分析,底层看这篇足矣

一、运行原理概述laravel 的入口文件 index.php1、引入自动加载 autoload.php2、创建应用实例,并同时完成了基本绑定($this、容器类Container等等)、基本服务提供者的注册(Event、log、routing)、核心类别名的注册(比如db、auth、config、router等)3、开始 Http 请求的处理make 方法从容器中解析指定的值为实际的类,比如 $app->make(Illuminate\Contracts\Http\Kernel

2020-12-03 21:30:58 602 3

原创 【PHP】Redis的内存过期与淘汰策略是如何工作的?你还不知道?

Redis 内存回收机制Redis 的内存回收主要围绕以下两个方面:1.Redis 过期策略:删除过期时间的 key 值2.Redis 淘汰策略:内存使用到达 maxmemory 上限时触发内存淘汰数据Redis 的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。Redis过期策略过期策略通常有以下三种:1.定时过期每个设置过期时间的 key 都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的 CPU 资

2020-11-29 20:21:14 207

原创 【PHP】你使用过redis做异步队列么,是怎么用的?有什么缺点?

Redis设计主要是用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列。它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;Redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是阻塞版的,所以可以用来做消息队列。(List : lpush / rpop)方式一:生产者与消费者模式使

2020-11-28 19:58:13 407

原创 【PHP】为什么 MySQL 添加索引后就可以提高查询速度

遇到这种问题,你就要高度集中,保持空杯心态,脑海里要有以下三个问题为什么添加索引会提高查询速度索引提高了查询速度对增删改有影响索引常用的算法原理分析B树和B+树下面来详细介绍介绍为什么添加索引会提高查询速度一句话回答:索引可以将无序内容转换为有序的一个集合(相对),就如同新华字典,如果没有目录,那么查询一个汉字就需要很长时间了。MySQL 使用的是 Btree 索引,那它是怎么加速检索的呢?检索中主要耗时在于内存与磁盘的IO耗时,所以加速的关键在于减少IO的次数。图中是一

2020-11-27 21:15:31 235

原创 【PHP】Redis实现分布式锁与任务队列的思路,源码附上

分享思路固然重要,但有了思路,却没有实现的代码,那会让人觉得很浮夸的,在工作中的程序猿都知道,你去实现一个功能模块,一段代码,虽然你有了思路,但是实现的过程也是很耗时的,特别是代码调试,还有各种测试等等。所以我认为,思路+代码,才是一篇好博文的主要核心。一、前言双十一刚过不久,大家都知道在天猫、京东、苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,可能会有几十万几百万的并发量,来抢这个手机,在高并发的情形下会对数据库服务.

2020-11-26 20:24:10 236

原创 【PHP】针对业务场景的需要,合理的使用 MySQL 乐观锁与悲观锁

针对 MySQL的乐观锁与悲观锁的使用,基本都是按照业务场景针对性使用的。针对每个业务场景,对应的使用锁。但是两种锁无非都是解决并发所产生的问题。下面我们来看看如何合理的使用乐观锁与悲观锁何为悲观锁悲观锁(Pessimistic Lock):就是很悲观,每次去取数据的时候都认为别人会去修改,所以每次在取数据的时候都会给它上锁,这样别人想拿这个数据就会block直到它取到锁。比如用在库存增减问题上,利用悲观锁可以有效的防止减库存问题。简单来讲,悲观锁就是假定会发生并发冲突,屏蔽一切可能违反数据完整.

2020-11-25 20:36:52 353 1

原创 【进阶】PHP常见的设计模式,我觉得你还是要搞懂!

设计模式六大原则开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。迪米特法则:一个对象应该对其他对象保持最少的了解。

2020-11-24 19:37:26 226

原创 【PHP】高并发遇到死锁不知道怎么解决,看这篇足矣!

一、什么是死锁多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题—死锁。死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局(Deadly-Embrace) ) ,若无外力作用,这些进程(线程)都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同时占用一个资源,等待另一个资源,这个时候甲

2020-11-23 19:55:35 711

原创 看看PHP大神是如何对900W+的数据表的SQL 查询优化分析的

有一张财务流水表,未分库分表,目前的数据量为9685695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:减少回表操作;-- 优化前SQLSELECT 各种字段FR

2020-11-21 22:00:49 139

原创 【PHP】用了这么久的Laravel框架,你分析过核心架构了没

我们在学习技术中单枪匹马,还不如一次短短的交流,你可以在别人吸取各种学习经验,学习方法以及学习技巧。所以,学习与交流少不了一个圈子,提升你的学习技能,请点击加技术群:点击进入暗号: PHP+「平台」Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel.

2020-11-20 19:06:41 407 1

原创 【PHP】Laravel框架的这些你都懂的话,它核心架构基本就懂了

使用过Larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器、视图、模型)之外,还有中间件、门面、契约等,这些东西是如何在laravel框架运用起来的呢?今天就和大家详聊一下。首先应该了解laravel框架的架构模式(设计核心,laravel 框架是使用服务组件化的开发模式开发的,laravel框架就是由不同的服务组件构成的)laravel 里面多个服务提供者构成了laravel组件。分层设计:把相同功能的类库放在同一个文件夹里面。laravel框架有多个类组成服务,由.

2020-11-19 21:25:34 367

原创 一个高级PHP工程师所应该具备的

初次接触PHP,就为他的美所折服,于是一发不可收拾。很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助。平静的心态和所有程序员一样,要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,

2020-11-18 20:11:59 388 1

原创 ThinkPHP6 核心分析(九):发送响应和收尾工作

说明前面所有分析,都是从 $response = $http->run(); 展开的,经历了漫漫长路,run 方法终于运行完毕,返回一个 Response 对象,程序又回到入口文件:...$response = $http->run();$response->send();$http->end($response);接下来是执行 $response->send();。send 方法:public function send(): void{ /

2020-11-16 21:15:38 581

原创 关于THINKPHP 的 NGINX 配置,那些年才过的坑

THINKPHP 的 NGINX 配置踩坑今天在用一个以 tp 为基础的快速开发框架时遇到一些问题:nginx 报错截图为了方便说明进行手动换行// 处理时重写或内部重定向循环2019/11/11 11:16:06 [error] 15164#15432: *1 rewrite or internal redirection cycle while processing "/index.php/index.php/index.php/index.php/index.php/index.

2020-11-12 17:23:56 473 1

原创 php机制本身不提供多线程的操作,有了swoole就不一样了

多个任务同时执行比如,我们要对已知的用户数据进行判断,是否需要发送邮件和短信,如果需要发送则发送。不使用多进程时,我们首先判断是否发送邮件,如果需要则发送;然后再判断是否需要发送短信,如果需要则发送。如果发送邮件耗时2s,发送短信耗时2s,那么我们完成任务大概需要4s左右的时间。如果我们使用多线程的话,可以开两个线程,一个用于处理邮件,一个用于处理短信,则耗时一共需要2s左右,处理时间缩短了一半。以下是代码实例:<?php/** * Created by PhpStorm. * Use

2020-11-10 19:52:07 311

原创 在PHP7下安装Stone大幅度提升Laravel框架性能

众所周知,PHP框架越重,性能相对就越低,因为重型框架会在解析时调用非常多的类、方法和自定义函数,导致性能严重下降。Laravel是一个非常受欢迎的PHP框架,但它也是一个重型的全栈框架,你可以使用这个方法测试你的Laravel应用的性能,效果都很不理想。当然Laravel还有个姊妹版:Lumen,这个是类似于Slim的微框架,如果你觉得这个微框架足够使用,可以用来替代Laravel。好在PHP7相对于PHP5.6而言,性能提升了将近一倍,而Facebook的HHVM也是个不错的替代方案。所以如果可能

2020-11-09 20:49:33 267

原创 PHP 之实现基于Swoole简单的HTTP服务器

引用Swoole官方定义:PHP语言的异步、并行、高性能网络通信框架,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。在这里简述swoole两种API编写简单

2020-11-07 21:56:44 495

原创 PHP框架设计之 ThinkPHP5 源码解析

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,也是国内使用最为广泛的国产框架。诞生于2006年,历经FCS0.6.0到 ThinkPHP 0.9.5,历经1.0到3.0的发展。2015年发布ThinkPHP5.0版本。采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构。兼容PHP最新版本。这使得他成为框架的首选。下面也就其框.

2020-11-06 14:37:49 1118

原创 PHP框架之 Laravel 高并发调优笔记

调整框架本身的配置编辑.envAPP_ENV = productionAPP_DEBUG = falsephp artisan route:cache / php artisan config:cachecomposer dump-autoload --optimizephp artisan optimize其他可能开启 OPcachephp-fpm 配置调优But… 压测很容易看出,这些很难看到提高十倍以上性能的效果如果你正在考虑框架性能优

2020-11-05 14:21:08 1031 1

原创 看完这篇文章,就知道给 Laravel 开启 Swoole还可以不用三方包

Swoole 是一款优秀的 PHP 扩展,利用其可以实现原生 PHP 很难做到的常驻服务和异步。正好我有个 Laravel 项目可以折腾,就研究了下。点此加入我的企鹅群Laravel 项目是基于 composer 的,所以我先帖下我的 composer.json 中的 require 声明:{ "require": { "php": "^7.1.3", "cybercog/laravel-love": "^5.1", "dingo/api": "

2020-11-04 21:40:47 416

原创 在PHP中 mysql 如何修改数据

php mysql修改数据的方法:首先打开相应的PHP文件;然后使用UPDATE命令修改MySQL数据表数据,语法是“UPDATE table_name SET field1=new-value1, field2=new-value2”。MySQL UPDATE 更新如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。语法以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:UPDATE table_name SET field1.

2020-11-04 21:17:46 804 1

原创 如何在swoole中使用task进程来处理耗时任务?

我们知道,swoole中有两大进程,分别是 master 主进程和 manager 管理进程。其中 master 主进程中会有一个主 reactor 线程和多个 reactor 线程,主要的作用就是用来维护TCP连接,处理网络IO,收发数据。而 manager 管理进程,作用则是 fork 和管理 worker 和 task 进程。worker 进程的作用是接收 reactor 线程传递的数据,并处理数据,返回处理结果给 reactor 线程。task 进程的作用是处理一些相对耗时的任务,task

2020-11-03 21:46:32 254

原创 简述php异步编程

前言传统的 php-fpm 一个进程执行一个请求,要达到多少并发,就要生成多少个进程。更糟糕的是每次请求都需要重新编译执行,导致并发一直上不来。因此出现了 Swoole 和 WorkerMan 两个国内流行的常驻内存框架。这两个框架原理都是通过事件循环,让程序一直停留在内存,等待外部请求,达到高并发。点此加入我的企鹅群为什么需要异步先来看一个例子在工作目录下新建文件 slowServer.php<?phpsleep(5); // 5秒后才能返回请求echo 'done';开启服务

2020-10-29 15:45:35 280 1

原创 ThinkPHP6 源码分析之中间件分析

中间件从请求过程中可以看出,第一步就是加载的中间件。那么如何加载的呢?看下面这段代码$this->app->middleware让 app 实例访问属性 middleware?你会发现实例中并没有这个属性,那么访问一个不存在的属性会发生什么呢?它会去访问 __get 魔术方法,你有这个想法之后会在 Container 中发现这个魔术方法,最终它会去 make 创建对象,对于 make 的过程请到 解析 Request 章节查看。点此加入我的企鹅群创建 middleware 的过程中有

2020-10-28 21:05:48 445 1

原创 ThinkPHP5.1.x 框架源码分析之框架的灵魂

一、类的自动加载初始框架的灵魂,类的自动加载为什么说是框架灵魂呢,一般框架都会有类的自动加载,当引入文件很多的时候,就会需要用到。这一个也是很多人想去阅读源码时卡住的点源码阅读打开到入口文件 ../public/index.php 会看到这一段代码,此代码加载了 base.php 的核心文件// 加载基础文件 [ ../public/index.php]require __DIR__ . '/../thinkphp/base.php';在 base.php 中载入了一个 ThinkPH

2020-10-27 19:38:08 337

原创 简单分享下PHP如何优雅的分析 ThinkPHP 框架源码

简介在这里我说一下小技巧 如果要学习 ThinkPHP 框架源码,应该怎么操作!1、首先是 IDE在这里我推荐大家使用 PHPStorm。备注一下,支持正版PHPStorm 下载PHPStorm 激活方式这样阅读源码的时候,只需要点击一下就可以跳转到各个加载的文件2、阅读框架阅读框架前,希望各位小伙伴了解一下 设计模式,单例模式,工厂模式,注册树模式等等框架当中会有很多设计模式,提前阅读过会比较好理解。不会问题也不大,我文章会详细讲解到的3、了解容器需要了解容器或者说是概念, 容器,

2020-10-26 21:53:53 523 2

原创 PHP数据库编程之一MySQL优化策略概述

本文简单讲述了PHP数据库编程之MySQL优化策略。分享给大家供大家参考,具体如下:前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库。我们都知道,PHP开发中,数据的增删改查是核心。为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化。虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memcache、mongodb、redis这样的数据存储服务器的帮助下,PHP也能达到更快的存取速度,所以了解学习这些扩展也是非常

2020-10-24 21:18:34 168 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除