负载均衡、分布式、集群的理解以及多台服务器代码如何同步

下面一次解释下这些名词的概念 集群 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。那怎么解决呢?就需要使用多台机器,部署一样的程序,让几个机器同时的运行我们的网站。那怎么怎么分发请求的我们的所有机器上。所以负载均衡的概念就出现了。 负载均衡 负载均衡是指基于反向代理能将现在所有的请求根据指定的策略算法,分发到...

基于 JWT 实现 Laravel API 认证

什么是jwt jwt单词代表的意思就是JSON Web Token。 我们在做api请求的时候,通常要使用token,来验证是否这个请求能不能访问。 一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 为什么使用jwt Session是在服务器端的,而JWT是在客户...

Laravel 前端最佳实践

Laravel Mix Laravel在与前端相结合这块做的很不错,提供了Laravel Mix Laravel Mix 提供了简洁且可读性高的 API ,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤。可以通过简单链式调用来定义资源的编译。 我们可以自己使用sass,npm,es6语法,压缩,生成随机文件名,通过webpack打包生成...

如何开发 Laravel 扩展包并发布到 Composer

如何开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的laravel扩展包。其实原理就是我们自己去写一个服务提供者,把服务提供者配置到app/providers数组中。 1.第一步现在自己项目中跟目录创建packages/cxp/avatar/src 2.修改 composer.json "psr-4": { "App\\": "app/", "Cxp\\Avata...

为什么 Laravel 没有规划 models 目录?

本章节做为一个彩蛋。 从开始接触 Laravel 的时候,就发现 Laravel 的模型为什么不放到一个 model 的目录?而放在 app 目录下。 这个不是很不好维护吗?后来去查了相关资料,如果你有相同疑问的朋友可以推荐你去看下。 资料地址 资料地址...

PHP 新特性 Trait 在 Laravel 中的应用

Trait 是什么? Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。 Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法...

Eloquent ORM 中的 find 方法的实现流程

Eloquent ORM是什么? Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,并将新记录添加到数据表中。 简单例子 namespace App; use Illuminate\Database\Eloquent\Model; cla...

Laravel 事件之观察者模式

观察者模式 Laravel的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。 既然用到观察者实现,那我们先来说下什么是观察者 观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这...

一个 Laravel 请求的完整生命周期

为什么生命周期不在第一节开始讲,就怕如果不理解所谓的IoC、Facade、中间件之类的概念,生命周期理解起来生命周期理解出来可能有一定的难度。 源码剖析 Laravel 应用的所有请求入口都是 public/index.php 文件。打开index.php 发现代码也就几行。 define('LARAVEL_START', microtime(true)); require __DI...