前言 使用 PHP+MongoDB 的用户很多,因为 MongoDB 对非结构化数据的存储很方便。在 PHP5 及以前,官方提供了两个扩展,Mongo 和 MongoDB,其中 Mongo 是对以 MongoClient 等几个核心类为基础的类群进行操作,封装得很方便,所以基本上都会选择 Mongo 扩展。 详情请见官方手册:http://php.net/manual/zh/b…
前言 使用 PHP+MongoDB 的用户很多,因为 MongoDB 对非结构化数据的存储很方便。在 PHP5 及以前,官方提供了两个扩展,Mongo 和 MongoDB,其中 Mongo 是对以 MongoClient 等几个核心类为基础的类群进行操作,封装得很方便,所以基本上都会选择 Mongo 扩展。 详情请见官方手册:http://php.net/manual/zh/b…
Wink 是一个可以运行在任何新的或者现有的 Laravel 项目上的免费的开源发布平台。它拥有一个干净、高效的后台管理面板,并且为创建内容提供了一个熟悉的 WYSIWYG 编辑器。虽然如此,不过内容如何显示还是完全取决于你。Wink 既兼顾到了 Medium 发布平台的简单性,也可以使用您自己定制的网站控件和自定义选项。 Wink 是作为一个 Laravel 的包来安装的,并且默认使用它自己的数据库链接和验证系统,所以它也可以被添加到现有的项目中去,而不需要修改现有的项目。…
TDD 以及敏捷开发的先驱者之一的 James Grenning有句名言: 如果你没有进行测试驱动开发,那么你应该正在做开发后堵漏的事 - James Grenning 今天我们将进行一场基于 Laravel 的测试驱动开发之旅。 我们将创建一个完整的 Laravel REST API,其中包含身份验证和 CRUD 功能,而无需打开 Postman 或浏览器。? 注意:本旅程假定你已经理解了 Laravel 和 PHPUnit 的基本概念。你是否已经明晰了…
Laravel 是一个功能丰富的框架。但是,你无法从官方文档中找到所有可用的功能。以下是一些你可能不知道的功能。 1.获取原始属性 当修改一条 Eloquent 模型记录的时候你可以通过调用 getOriginal() 方法获取记录的原始属性 2. 检查模型是否被修改 使用 isDirty() 方法确定模型或给定属性是否已被修改 也可以检查指定属性是否被修改。 3. 获取更改的属性 使用 getChanges() 获取更改的属性 注:仅…
Eloquent ORM 看起来是一个简单的机制,但是在底层,有很多半隐藏的函数和鲜为人知的方式来实现更多功能。在这篇文章中,我将演示几个小技巧。 1. 递增和递减 要代替以下实现: 你可以这样做: 以下这些方法也可以实现: 2. 先执行 X 方法,X 方法执行不成功则执行 Y 方法 Eloquent 有相当一部分函数可以把两个方法结合在一起使用, 例如 『 请先执行 X 方法, X 方法执行不成功则执行 Y 方法 』。 实例 1 -- findOrFail(): 要替代以下代码的实现: 你可以…
我们将会学习使用 Laravel 的 Passport API OAuth 来创建一个验证系统。 第一步. 安装 Laravel 我们需要用以下命令来创建一个最新的 Laravel 应用,所以请打开终端执行: 第二步. 安装 Laravel Passport 包 Laravel Passport 可以在几分钟内为你的应用实现一个完整的 OAuth2 服务器。 第三步. 运行数据库迁移 Passport 的迁移会创建你的应用用来存储客户端和 Access Token 的表。 第四步. 生成秘钥 此…
什么是网页抓取? 你是否曾经需要从一个没有提供 API 的站点获取信息? 我们可以通过网页抓取,然后从目标网站的 HTML 中获得我们想要的信息,进而解决这个问题。 当然,我们也可以手动提取这些信息, 但手动操作很乏味。 所以, 通过爬虫来自动化来完成这个过程会更有效率。 在这个教程中我们会从 Pexels 抓取一些猫的图片。这个网站提供高质量且免费的素材图片。他们提供了API, 但这些 API 有 200次/小时 的请求频率限制。 发起并发请求 在网页抓取中使用异步 PHP (相比使用同步方式)的最大好处是可以在…
如今的网站开发与几年前的完全不一样了; 现在有很多让网站开发者感到困惑的东西。 这是我们决定做路线图指南 step by step visual guides demonstrating the bigger picture 的原因之一,并让每个人清楚的知道应该在网站开发中处于何种角色。 一周以前, 我们发表了一篇文章 Modern Frontend Developer in 2018 ,我们承诺了为后端和DevOps发布最新的路线图。现在履行承诺, 这篇文章是关于现代后端开…
每个专业的 PHP 开发者都知道用户上传的文件都是极其危险的。不论是后端和前端的黑客都可以利用它们搞事情。 大约在一个月前,我在 reddit 上看了一篇 PHP 上传漏洞检测 ,因此, 我决定写一篇文章。用户 darpernter 问了一个棘手的问题: 尽管我将其重命名为 'helloworld.txt', 攻击者是否仍然能够运行他的php 脚本? 置顶的答复是: 如果文件后缀修改为 .txt ,那么它不会被当做php文件执行,这样你安心了吧,不过再三确保不是 .php.txt 的后…
一想到那些可以使用 Node 的同事,一些 PHP 开发者的脸都嫉妒绿了。异步 Node 系统可以在不同协议间共享代码库,并在代码之外提供服务。这真的想让一个人转 Node 开发。实际上 PHP 中也有类似于 Node 的存在,并被列入了 PHP 拓展,叫做 Swoole。 PHP 中的 Node ?Swoole 到底是什么? 我先从 官方文档 中引用下 Swoole 的定义: Swoole:面向生产环境的 PHP 异步网络通信引擎。使 PHP 开发人员可以编写高性能、可拓展的异步并发 TCP、…
内容将于本站同步
每周推送最新前沿技术文章