2019 年:胸怀感恩之心,积极拥抱未来

2019-12-26
阅读 2 分钟
5.4k
19 年意味着我步入而立之年,也是我在「趣头条」的第一个年头。忙碌、焦虑这些词今年一整年始终与我相伴,也就在今年我对未来和生活有了一些新的思考,期盼一个光明的未来。

使用 Laravel 5.5+ 更好的来实现 404 响应

2018-09-03
阅读 3 分钟
4.4k
Laravel 5.5.10 封装了两个有用的路由器方法,可以帮助我们为用户提供更好的 404 页面。现在,当抛出 404 异常时,Laravel 会显示一个漂亮的 404.blade.php 视图文件,你可以自定义显示给用户 UI,但在该视图中,你无权访问 session,cookie,身份验证(auth)等...

没错,这就是面向对象编程(设计模式)需要遵循的 6 个基本原则

2018-08-23
阅读 11 分钟
2.7k
本文首发于 没错,这就是面向对象编程(设计模式)需要遵循的 6 个基本原则,转载请注明出处。 在讨论面向对象编程和模式(具体一点来说,设计模式)的时候,我们需要一些标准来对设计的好还进行判断,或者说应该遵循怎样的原则和指导方针。 现在,我们就来了解下这些原则: 单一职责原则(S) 开闭原则(O) 里氏替换原...

Apache 与 Nginx 性能对比:Web 服务器优化技术

2018-08-20
阅读 10 分钟
5.5k
多年前 Apache 基金会 Web 服务器 简称「Apache」,由于使用者众多几乎等同于「Web 服务器」。httpd(含义是简单的 http 进程)是它在 Linux 系统上的守护进程 - 同时它被预装到主流的 Linux 发行版中。

使用 Laravel 制定 MySQL 数据库备份计划任务

2018-08-14
阅读 4 分钟
3.4k
几天前,我登录到错误的数据库中然后干掉了 18 000 行线上数据记录。更糟糕的是,我们没有对这个数据库进行备份。然后,我决定编写一个能够自动完成数据库导出并保存到 SQL 文件的脚本。

PHP 垃圾回收与内存管理指引

2018-08-09
阅读 6 分钟
6.2k
本文将要讲述 PHP 发展历程中的垃圾回收及内存管理相关内容,文末给出 PHP 发展在各个阶段有关内存管理及垃圾回收(内核)参考资料值得阅读。

Redis 持久化(persistence)技术口袋书

2018-08-06
阅读 6 分钟
6.7k
本文首发于 Redis 持久化(persistence)技术口袋书,转载请注明出处。 本文讲解 Redis 数据库的数据持久化解决方案。 测试环境: Windows 7 Redis 4.0.2.2 去下载 Windows 版本 RDB 和 AOF 持久化解决方案 Redis 提供两种持久化解决方案:RDB 持久化和 AOF 持久化。 要点: RDB 持久化:可以在指定时间间隔内,生成数据...

事件驱动架构设计

2018-08-01
阅读 7 分钟
3.8k
这篇文章是 软件架构演进 一个有关 软件架构 系列文章中的一篇。这些文章,主要是我学习软件架构、对软件架构的思考及使用方法的记录。相比于这个系列的前几篇文章,本篇文章可能看来更有意义。

深入剖析 Web 服务器与 PHP 应用之间的通信机制 - 掌握 CGI 和 FastCGI 协议的运行原理

2018-07-26
阅读 6 分钟
4.8k
身为一名使用 PHP 语言开发后端服务的程序猿,我们每天都和 PHP 以及 Web 服务器产生无数次的亲密接触。得益于它们,我们才能够如此快速的构建出令人陶醉的 Web 产品。

深入理解 Laravel 管道

2018-07-23
阅读 3 分钟
3.2k
基本上,你可以使用 laravel 管道(pipelines)基于链式操作将对象传入多个类中执行任何类型的任务,并在所有「任务」执行完成后一次性返回最终结果。

PHP 文件系统完全指南

2018-07-20
阅读 13 分钟
4k
相信大家在日常研发过程中,难免需要和各种文件纠缠不清。比如,打开 .env 文件并从中读取配置信息、把项目中的错误信息写入到日志文件中或者获取图片的创建时间等等。在处理这些功能时,我们都需要使用到 PHP 文件系统接口。

PHP 多任务协程处理

2018-07-17
阅读 12 分钟
7.3k
上周 有幸和同事一起在 SilverStripe 分享最近的工作事宜。今天我计划分享 PHP 异步编程,不过由于上周我聊过 ReactPHP;我决定讨论一些不一样的内容。所以本文将探讨多任务协程这方面的内容。

PHP 生成器入门

2018-07-16
阅读 5 分钟
3.4k
PHP 在 5.5 版本中引入了「生成器(Generator)」特性,不过这个特性并没有引起人们的注意。在官方的 从 PHP 5.4.x 迁移到 PHP 5.5.x 中介绍说它能以一种简单的方式实现迭代器(Iterator)。

如何使用 Laravel Collections 类编写神级代码

2018-07-10
阅读 5 分钟
4.8k
Laravel 提供了一些超赞的组件,在我看来,它是目前所有 Web 框架中提供组件支持最好的一个。它不仅提供了开箱即用的视图(views)、身份认证(authentication)、会话(sessions)、缓存(caching)、Eloquent、队列(queues)、数据校验(data validation)等组件。甚至还提供了开发工具(Valet 和 Homestead)。

PHP 数组使用之道

2018-07-09
阅读 7 分钟
3.4k
这个教程我将通过一些实用的实例和最佳实践的方式列举出 PHP 中常用的数组函数。每个 PHP 工程师都应该掌握它们的使用方法,以及如何通过组合使用来编写更精简且易读的代码。

RESTful API 最佳实践

2018-06-29
阅读 1 分钟
3.5k
本文首发于 RESTful API 最佳实践,转载请注明出处。 本文是我在学习 REST API tutorial(中译版) 在线教程过程中,绘制的思维导图笔记。笔记在原教程的基础上扩充了相关知识点的资料和教程,方便查阅和知识点的完善。 思维导图摘要 一、 RESTful API 设计的 6 项基本原则重点: 本节给出了在设计 RESTful API 接口时需...

深入浅出 Laravel 路由执行原理

2018-06-25
阅读 18 分钟
6.6k
本文首发于「深入浅出 Laravel 路由执行原理」,转载请注明出处。 这篇文章我们将学习 Laravel 项目中一个很重要的主题 --「路由」。 可以说几乎所有的框架都会涉及到「路由」的处理,简单一点讲就将用户请求的 url 分配到对应的处理程序。 那么还等什么,赶紧上车吧! 路由加载原理 这节我们将重点讲解如何加载我们在 ro...

深入浅出 Laravel 的 Facade 外观系统

2018-06-15
阅读 8 分钟
7.6k
本文首发于 深入浅出 Laravel 的 Facade 外观系统,转载请注明出处。 今天我们将学习 Laravel 核心架构中的另一个主题「Facade(外观)」。 本文将从以下几个方面出发,全面讲解 Laravel 中 Facade 的运行原理,为了便于理解后续中所有 Facade 译作「外观」: 简单介绍「外观」设计模式; Laravel「外观」的加载原理; L...

Travis CI 持续集成服务构建 Composer 类库简明教程

2018-06-11
阅读 8 分钟
3.6k
本文首发于 Travis CI 持续集成服务构建 Composer 类库简明教程,转载请注明出处! 在项目开发过程中,编码工作只是软件开发整个过程中的一小部分环节,更多的我们需要去构建和测试我们的项目,以确保项目的健壮和稳定性。 这篇文章将带领大家学习如何使用 Travis CI 持续集成服务和 Composer 中国 包管理工具,来构建一...

深入剖析 Laravel 服务提供者实现原理

2018-06-07
阅读 18 分钟
11.4k
今天我们将学习 Laravel 框架另外一个核心内容「服务提供者(Service Provider)」。服务提供者的功能是完成 Laravel 应用的引导启动,或者说是将 Laravel 中的各种服务「注册」到「Laravel 服务容器」,这样才能在后续处理 HTTP 请求时使用这些服务。

Laravel 服务提供者指南

2018-06-04
阅读 10 分钟
3.7k
如果你使用过 Laravel 框架的话,那么,你不可能没听说过服务容器和服务提供者。事实上,它们是 Lavavel 框架核心,它们完成 Larvel 应用中服务启动的艰巨任务。

深入剖析 Laravel 服务容器

2018-05-29
阅读 23 分钟
4k
本章将带领大家研究另一个 Laravel 框架的核心内容:「服务容器」。有阅读过 Laravel 文档 的朋友应该有注意到在「核心架构」篇章中包含了几个主题:生命周期、服务容器、服务提供者、Facades 和 Concracts.

为什么 php empty 函数判断结果为空,但实际值却为非空

2018-05-28
阅读 2 分钟
2.7k
结果出人意料。为什么变量的值为字符串,但同时会是空值呢?让我们在 $person->firstName 变量上尝试使用其它一些函数来进行判断吧:

Laravel 广播系统工作原理

2018-05-23
阅读 17 分钟
4.9k
今天,让我们深入研究下 Laravel 的广播系统。广播系统的目的是用于实现当服务端完成某种特定功能后向客户端推送消息的功能。本文我们将学习如何使用第三方 Pusher 工具向客户端推送消息的功能。

Symfony 服务容器:使用 XML 或 YAML 文件描述服务

2018-05-16
阅读 8 分钟
2.1k
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:

Symfony 服务容器:使用建造者创建服务

2018-05-11
阅读 4 分钟
2.1k
本文是依赖注入(Depeendency Injection)系列教程的第 4 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:

深入浅出依赖注入

2018-05-10
阅读 7 分钟
4.9k
本文首发于 深入浅出依赖注入,转载请注明出处。 本文试图以一种易于理解的行文讲解什么是「依赖注入」这种设计模式。 或许您已经在项目中已经使用过「依赖注入」,只不过由于某些原因,致使您对它的印象不是特别深刻。 「依赖注入」可能是最简单的设计模式之一,但即便如此我发现要想真正的以一种老少咸宜的方式把它讲...

Symfony 服务容器入门

2018-05-07
阅读 4 分钟
2k
本文是依赖注入(Depeendency Injection)系列教程的第 3 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:

是否需要使用依赖注入容器?

2018-05-05
阅读 4 分钟
3.4k
本文是依赖注入(Depeendency Injection)系列教程的第 2 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:

什么是依赖注入?

2018-05-04
阅读 5 分钟
4.3k
本文是依赖注入(Depeendency Injection)系列教程的第一篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括: