84
Laravel 用户认证系统(二)

1. 前言上一节我们介绍了 Laravel 用户认证系统基本概念,这一节来更深入的了解如何使用。 2. 路由使用以下命令来快速生成身份认证所需的路由和视图: php artisan make:auth 该命令会自动创建用户认证相关的控制器: app/Http/Controllers/Auth/ForgotPasswordController.php - 用于忘记密码后发送找回密码邮件a ……

102
使用 Service 模式来封装业务代码

1. 说明如果将商业逻辑都写在 Controller 中,随着业务复杂度的提高,会造成 Controller 臃肿而难以维护的困境。基于 SOLID 原则,我们应该使用 Service 模式,将相关的商业逻辑封装在不同的 Service 中,以方便中大型项目的维护。 2. 商业逻辑商业逻辑中,常见的有: 涉及外部行为。如:发送邮件,调用第三方 API等。使用 PHP 写的逻辑。如:根据购买 ……

68
商品的数据结构设计

1. 说明商品是电商系统的核心,这里我们一起来设计「商品」的数据库结构。 2. SKU在这之前,我们需要先了解以下商品 SKU 的概念。 SKU = Stock Keeping Unit(库存量单位),也可以称之为「单品」。对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性中任一属性与其他商品存在不同时,可称为一个单品。 为了更好地理解 ……

65
消息推送

消息推送是 APP 开发中非常重要的功能,可以让不在前台运行的 APP,及时进行消息通知。在新闻内容、促销活动、产品信息、版本更新提醒、订单状态提醒等诸多场景中都有应用。 以下以 iOS 为例,介绍下消息推送的机制,以及实现一些基础代码。 1. 原理APNs(英文全称:Apple Push Notification service),即苹果推送通知服务。 消息推送分为本地通知和远程通知,本地 ……

142
Laravel API 认证(Passport OAuth)

1. 介绍Laravel 中,实现基于传统表单的登录和授权已经非常简单,但是如何满足 API 场景下的授权需求呢?在 API 场景里通常通过令牌来实现用户授权,而非维护请求之间的 Session 状态。我们可以使用 Passport 轻而易举的实现 API 授权认证,Passport 可以在几分钟内为应用程序提供完整的 OAuth2 服务端实现。Passport 是基于由 Alex Bilbie ……

87
Laravel 用户认证系统(一)

1. 简介 在新的 Laravel 应用上运行 php artisan make:auth 和 php artisan migrate 命令。就可以构建好整个认证系统。 Laravel 中实现用户认证非常简单,几乎所有的东西都为你配置好了。其配置文件位于 config/auth.php,包含了相关的选项配置。 其核心由 Laravel 的认证组件「看守器」和「提供器」组成。 看守器定义 ……

69
Laravel 路由参数绑定与路由模型绑定

在 Laravel 中一个典型的路由定义是这样的: routes/web.php // 闭包方式定义路由 Route::get('foo', function () { return 'Hello World'; }) 当然也可以将其指定到具体控制器: Route::get('home', 'PagesController@home'); routes/web.php ……

90
PHP 执行 shell 命令

PHP 的一个强大之处在于,可以很方便的在操作系统中执行 shell 命令,所以基本上它就无所不能了,今天我们来了解下与之相关的内容。 1. 执行运算符PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 会尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋值给一个变量而不是简单的丢弃到标准输出)。使用反引号运算符的效果和函数 shell_exec( ……

110
利用 WebHook 实现 Git 自动部署代码

我们通常将项目托管在 GitHub、GitLab 或码云上,每次本地更新代码后,可能还需要进入项目部署目录 pull 一次,比较麻烦。利用 WebHook 可以很好的实现自动化部署。本地 push 代码,代码更新到托管服务器,触发 WebHook 钩子,部署服务器接受到 POST 请求,执行部署更新操作。 本教程以将托管在码云上的 Laravel 项目部署到 CentOS 服务器上为例进行说明。 ……

110
PHP 会话机制

1. 简介HTTP 协议本身是无状态的,在 PHP 中使用 Session (会话)来保存某些数据,以便在后续进行访问,这让基于会话的数据共享成为可能。 用户在访问网站时,会被分配一个唯一的 id,这就是 Session ID (会话 ID)。它有两种传递方式,一是存储在客户端的 Cookie 中,二是在 url 中作为参数。 会话技术支持你把请求中的数据保存到超全局数组 $_SESSION ……