自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PHP / Laravel / 全栈

laravel-china.org 社区上精华文章

  • 博客(23)
  • 收藏
  • 关注

原创 记一次对 Laravel-permission 项目的性能优化

我最近研究分析了在 SWIS上面创建的项目的性能。令人惊讶的是,最耗费性能的方法之一是优秀的  spatie/laravel-permission 包造成的。经过查阅更多资料和研究,发现一个可能明显改善的性能问题 。既然解决方案已明确阐述,就很容易编写代码改善,提交请求。现在这个解决方案已被合并和发布,下面是这个性能问题的分析和如何在自己的项目避...

2018-06-13 11:36:55 1685

原创 一步步教你编写不可维护的 PHP 代码

译者注:这是一篇很棒文章,使用有趣的叙述方式,从反面讲解了作为一个优秀的 PHP 工程师,有哪些事情是你不能做的。请注意哦,此篇文章罗列的行为,都是你要尽量避免的。随着失业率越来越高,很多人意识到保全自己的工作是多么的重要。那么,什么是保住自己工作,并让自己无可替代的好方法呢?一个很简单的事实是只要你的代码没有人能够维护,那么你就成功保住了工作。编写不可维护的代码是一个特殊的技能,...

2018-06-08 06:43:15 1063 1

原创 Laravel 程序架构设计思路:使用动作类

当我们谈论到应用程序的架构的时候,经常会问到一个经典的问题,那就是“这段代码应该放在哪里比较好”。 因为 Laravel 是一个相当灵活的框架,所以要回答这个问题其实没那么容易。我应该把我的业务逻辑写在 Model 层,还是 Controller 层,或者是其他地方?当你的应用程序仅有一个接入点,把业务逻辑写在 Controller 层是可以的。但是现在更普遍的的情形是,有很多接入点去调用...

2018-06-07 06:21:40 381

原创 Laravel 的十八个最佳实践

本文翻译改编自 Laravel 的十八个最佳实践这篇文章并不是什么由 Laravel 改编的 SOLID 原则、模式等。只是为了让你注意你在现实生活的 Laravel 项目中最常忽略的内容。单一责任原则一个类和一个方法应该只有一个职责。 错误的做法:public function getFullNameAttribute(){ if (auth(...

2018-06-04 16:43:15 3105 1

原创 [扩展推荐] Laravel 中利用 GeoIP 获取用户地理位置信息

我最近需要一个用户地域检测来设置用户的默认区域和货币。由 Daniel Stainback 创建的 torann/geoip  很好地满足为Laravel 5 项目提供 GeoIP 服务的要求。这个 Laravel GeoIP 包支持一些服务,包括默认的 ip-api.com 服务, 一个可下载的 Maxmind 数据库和 Maxmind API。你也可以通过这个配置轻...

2018-05-31 09:33:49 2587

原创 10 个优质的 Laravel 扩展推荐

这里有 10+ 个用来搭建 Laravel 应用的包为何会创建这个包的列表?因为我是一个「比较懒」的开发者,在脸书上是多个 Laravel 小组的成员。平日遇到最多的问题就是开发是需要用那些包。我很懒所以我不想每次都从头开始搞这些东东。为何此文没有包括管理包?它们将会在另外一篇文章中进行讲解。1. 模块如果你不是开发一个「玩具项目」。那么,使用模块以及按模块功能进行划分...

2018-05-30 09:48:17 4148

原创 5 个非常有用的 Laravel Blade 指令,你用过哪些?

接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。废话少说,让我们开始吧。1. 检测用户是否认证你可以通过验证用户是否为空来检测其是否认证:@if(auth()->user()) // 用户已...

2018-05-29 12:05:00 1144

原创 PHP 7.3 我们将迎来灵活的 heredoc 和 nowdoc 句法结构

php.net RFC 频道已经公布了 PHP 7.3 的 Heredoc 和 Nowdoc 语法更新,此次更新专注于代码可读性: Heredoc 和 Nowdoc 有非常严格的语法,有些时候这令很多开发者避而远之,因为他们在代码中看起来非常丑陋,令代码的可读性降低。本次的更新针对此问题,对语法做出了以下两个更改: 支持闭合标记符的缩进; 不再强制闭合标记符的换行;...

2018-05-21 09:33:30 926

原创 使用 Swoole 来加速你的 Laravel 应用

Swoole 是为 PHP 开发的生产级异步编程框架。 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTTP, WebSocket 服务, 而不需要拥有太多的非阻塞 I/O 编程和低级别的 Linux 内核知识。 你可以把 Swoole 想象成 NodeJS, 但对于 P...

2018-05-17 10:54:51 6100

原创 一个成功的 Git 分支模型(适用于商业应用开发)

在这篇文章中,我将推广一下大约一年前我介绍过的一些项目(公私皆有)中使用的开发模型,它们的结果都非常成功。有段时间我非常想写出来分享一下,但是我至今才抽出时间来。我不会言及任何项目细节,仅讨论分支策略和发布管理。为何使用 git? 关于 Git 和集中式源码版本控制系统的优缺点对比讨论, 见 此 web。这里有很多精彩激烈的论战。作为一名...

2018-04-25 09:54:58 238

原创 PHP 扩展开发检测清单(扩展开发必读)

想要做出一个成功的 PHP 扩展包,不仅仅是简单的将代码放进文件夹中就可以了,除此之外,还有非常多的因素来决定你的扩展是否优秀。以下清单的内容将有助于完善你的扩展,并且在 PHP 社区中得到更多的重视。1. 为你的扩展选择一个正确合适的名字确保你的命名没有被其他项目使用。扩展的名字需要和你的 PHP 命名空间保持一致。不要在你的命名空间中使用自己的姓名或者其他带有个人色彩...

2018-04-23 08:14:00 186

原创 20 个 Laravel Eloquent 必备的实用技巧

Eloquent ORM 看起来是一个简单的机制,但是在底层,有很多半隐藏的函数和鲜为人知的方式来实现更多功能。在这篇文章中,我将演示几个小技巧。1. 递增和递减要代替以下实现:$article = Article::find($article_id);$article->read_count++;$article->save();你可以这样做:$...

2018-04-18 09:22:45 2447

原创 [项目推荐] Corcel 让你在 WordPress 中使用 Laravel

你想过可以在 WordPress 中使用 Laravel 或者任意一种 PHP 框架吗? Corcel 可以帮你实现!开发网站应用就应该是快捷并有趣的。当然了,每个应用都会有它自己的需求和生命周期。WordPress 是基于 PHP 编写的功能强大的 CMS,你可以使用它非常快的创建你的产品。然而,它并没有遵循最近 PHP 的变化和约定,但是你可以将它与其他类似 Laravel...

2018-04-17 09:28:44 323

原创 PHP 7.2 新功能介绍

PHP 7.2 已經在 2017 年 11 月 30 日 正式發布 。這次發布包含新特性、功能,及優化,以讓我們寫出更好的代碼。在這篇文章裡,我將會介紹一些 PHP 7.2 最有趣的語言特性。你可以在 Requests For Comments 頁面查看完整的更動清單。核心改进参数类型声明从 PHP5 起,我们可以指定函数参数的预期声明类型。如果传参类型错误,PH...

2018-04-13 10:36:14 703

原创 Tumblr:我们是如何从 PHP 5 升级到 PHP 7 的

Tumblr 团队经常在寻找新的方式来提升网站的性能。这意味着要给访问量大的代码增加缓存,找到更快的 CDN 配置,或者升级基础软件。最近,通过一次跨团队的努力,我们将全部 web 服务器战舰从 PHP 5 升级到了 PHP 7。整个升级是一次有趣的项目,有一些非常酷的结果,所以我们想分享给你。时间表这起源于 2015 年秋的一个黑客日(hackday,类似于黑客马拉松)项目。...

2018-04-12 12:15:41 823

原创 其实你并不懂如何定义一个 PHP 函数

<?phpfunction divide($dividend, $divisor){ return $dividend / $divisor;}echo divide(12, 4);echo divide('sa', 'sd');这段代码乍一看没毛病,但是如果你向它传递「任意」参数,它就会出问题。写出好的代码是一个学无止境的过程。让我们来改进我们编写 PHP ...

2018-04-11 14:24:40 136

原创 PHP / Laravel 月刊 #23

最新资讯Laravel 5.6 中文文档翻译完成,译者 60 人,耗时 10 天 SummerDingo API 中文文档翻译召集【已完成】 Summer我最喜欢 Laravel 5.6 的三个功能 Summer[已完成] 翻译《PHP 设计模式》 Summer酷工作[北京] [12k-40k] 无二之旅 招聘中高级 PHP 工程师、PHP 架构师、高级前端工程师 ...

2018-04-11 13:52:56 155

原创 十个你需要在 PHP 7 中避免的坑

1. 不要使用 mysql_ 类函数终于,你不用再看到建议不要使用 mysql_ 函数的提示了。因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活的 PDO 层。2. 不要写无用的代码这看上去是个无脑建议,但是随着 PHP7 速度的提升掩盖了一些问题使它显得日趋重要。不要仅仅因切到 PHP7 让网站速度变得快点,你就沾沾自喜了...

2018-04-10 14:37:14 614

原创 [扩展推荐] —— Laravel Log 增强

Laravel Log Enhancer 是 Laravel 5.6 的一个扩展包,可以在 Laravel 日志中添加额外的数据。 得益于 Laravel 5.6 中日志的更新,这个包利用这些特性扩展日志记录并添加数据,例如请求头、内存使用情况、会话信息和其它数据 。你可以通过修改 config/logging.php 中的 tap 属性,来添加 LogEnhancer 到你的日志通道...

2018-04-09 16:25:59 1669

原创 教你在不使用框架的情况下也能写出现代化 PHP 代码

我为你们准备了一个富有挑战性的事情。接下来你们将以 无 框架的方式开启一个项目之旅。首先声明, 这篇并非又臭又长的反框架裹脚布文章。也不是推销 非原创 思想 。毕竟, 我们还将在接下来的开发之旅中使用其他框架开发者编写的辅助包。我对这个领域的创新也是持无可非议的态度。这无关他人,而是关乎己身。作为一名开发者,它将有机会让你成长。也许无框架开发令你受益匪浅的地方就是,可以从...

2018-04-04 11:44:38 2621

原创 使用 PHP 来做 Vue.js 的 SSR 服务端渲染

对于客户端应用来说,服务端渲染是一个热门话题。然而不幸的是,这并不是一件容易的事,尤其是对于不用 Node.js 环境开发的人来说。我发布了两个库让 PHP 从服务端渲染成为可能.spatie/server-side-rendering 和 spatie/laravel-server-side-rendering适配 laravel 应用。让我们一起来仔细研究一些...

2018-04-03 11:50:55 3005

原创 十个 PHP 开发者最容易犯的错误

PHP 语言让 WEB 端程序设计变得简单,这也是它能流行起来的原因。但也是因为它的简单,PHP 也慢慢发展成一个相对复杂的语言,层出不穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试。这篇文章列出了十个最容易出错的地方,值得我们去注意。易犯错误 #1: 在 foreach循环后留下数组的引用还不清楚 PHP 中 foreach 遍历的工作原理?如果你...

2018-04-02 09:51:25 169

原创 PHP 引用是个坑,请慎用

去年我参加了很多次会议,其中八次会议里我进行了相关发言,这其中我多次谈到了 PHP 的引用问题,因为很多人对它的理解有所偏差。在深入讨论这个问题之前,我们先回顾一下引用的基本概念,明确什么是“引用传递”。在 PHP 中引用意味着用不同的名字访问同一个变量内容,不论你用哪个名字对变量做出了运算,其他名字访问的内容也将改变。让我们通过代码来加深对此的理解。 首先我们写几个简单的语句,把一个...

2018-03-30 10:39:08 640

空空如也

空空如也

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

TA关注的人

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