最佳实践系列(十一):深入探讨 PHP 错误异常处理机制及 Laravel 框架底层的相应实现

错误和异常是很强大的工具,能帮助我们预期意料之外的事,使用优雅的方式捕获问题。不过,错误和异常很相似,容易让人混淆,二者都表示出问题了,都会提供错误信息,而且都有错误类型。然而,错误出现的时间比异常早,错误会导致程序脚本停止执行,如果可能,错误会委托给全局错误处理程序处理,有些错误是无法恢复的。对于高版本 PHP 我们基本上只需要处理异常,不用管错误,但我们仍然必须做好防御准备,因为 P…

又一个基于 Laravel 5.2 开发的后台管理系统

1、简介 zhanghaobao 是基于 Laravel 5.2 开发的一套后台管理系统,支持前后台分表登录,RBAC权限管理,通知闪存等功能,是用于个人以及公司项目快速开发的基础项目。 2、Github https://github.com/jwwb681232/zhanghaobao 3、安装 克隆资源库 git clone https://github.com/jwwb681232…

最佳实践系列(八):PHP 数据库统一处理 API —— PDO 扩展及其在 Laravel 底层的使用

PHP 支持多种数据库,如 MySQL、PostgreSQL、SQLite 和 Oracle 等,并且这些数据库都提供了用于 PHP 和相应数据库之间通信的扩展,如 mysqli、sqlite3 等。这样造成的一个问题是如果项目中使用了多种数据库,需要安装并使用多种 PHP 数据库扩展和接口,增加了学习和维护的成本。为此,从 PHP 5.1 开始引入了一个新的扩展 —— PDO。 PDO…

Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证

本教程基于 Laravel 5.4 开始之前首先准备好开发环境,我们假设你已经安装好 Laravel,至于 Vue 的引入,请参考官方文档。 做好上述准备工作后就可以开始我们的开发了,本教程中我们将演示文章发布页面的表单验证。 首先在 routes/web.php 中新增两条路由规则: Route::get(‘post/create’, ‘PostController@create’);…

基于 Laravel 实现的实时社交书签系统 —— Voten(类似Reddit)

 关于 Voten Voten 是一个现代的实时社交书签系统,基于 Laravel 5.4 + Vue.js 开发,类似于 Reddit,但是更加美观,它实时、简单并且支持自定义。 网址:https://voten.co/ GitHub:https://github.com/voten-co/voten 代码风格 Voten 遵循 PSR-2 代码标准和 PSR-4 自动加载标准,并且…

通过 PHP OPcache 让你的 Laravel 应用运行速度飞起来

什么是 Opcache 每一次执行 PHP 脚本的时候,该脚本都需要被编译成字节码,而 OPcache 可以对该字节码进行缓存,这样,下次请求同一个脚本的时候,该脚本就不需要重新编译,这极大节省了脚本的执行时间,从而让应用运行速度更快,同时也节省了服务器的开销。 用数字说话 我们当然很想知道到底进行了怎样的优化,尽管性能提升高度依赖于应用和服务器的配置,不过我们可以通过运行基准测试(be…

基于 Laravel + Vue 实现的 Web OS 系统 —— 积木云

项目概述 这个系统从 2014 年最初的 idea 到 2017 年已经有两年半的时间了,时光荏苒。作者是一个 PHP 程序员,开发过程中总是为找一个好的、可扩展的后台模板而苦恼,积木云的早期版本使用了芒果云 + OneThink 整合,但碍于芒果云不提供源码以及 TP 官方对 OneThink 放弃支持,造成了旧版本积木云维护的异常困难。于是作者在 2016 年用更先进的 Larave…

基于 Laravel + Vue.js 开发的全新社交系统 —— ThinkSNS+

什么是ThinkSNS+ ThinkSNS(简称TS)始于2008年,一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+。新的产品名字叫做 +也就是 Plus ,因为 ThinkSNS 的历史原因,我们已经无法升级 TP 框架,随后花了一年进行 Laravel 化,但是过程中很艰辛,最终我们发现系统中存在太多的问题。于是…

如果在所有 Laravel 项目中只安装一个扩展包,你会选择哪一个?

Mike Erickson (@codedungeon) 在 Twitter 上提出了这个问题,吸引了很多回复。我个人感觉由 Barry vd. Heuvel 开发的 Debugbar 将会获取最高票,结果果不其然,它获取了最多推荐。 下面是人们推荐的扩展包列表: Debugbar Laravel Debugbar 是一个让你在开发期间可以便捷查看应用所有信息的扩展包,以方便调试。 ID…

[ Laravel 5.4 文档 ] 官方包 —— Laravel Scout

1、简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案,通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout 通过 Algolia 驱动提供搜索功能,不过,编写自定义驱动很简单,你可以很轻松地通过自己的搜索实现来扩展 Scout。 2、安装 首先,我们通过 Composer 包管理器来安装 Scout: c…