Month: 1月 2020

2020年的PHP

在Web开发人员和程序员之间,这并不是什么秘密:PHP的声誉不高。尽管它仍然是构建Web应用程序的最常用语言之一;多年以来,PHP赢得了混乱的代码库,经验不足的开发人员,不安全的代码,不一致的核心库等的美誉。

尽管许多反对PHP的论据仍然存在,但还有一个光明的一面:您可以用PHP编写干净,可维护,快速和可靠的应用程序。

在这篇文章中,我想看看PHP开发的光明面。我想向您展示,尽管有很多缺点,PHP是一种值得学习的语言。我想让您知道PHP 5时代即将结束。那就是,如果您愿意的话,您可以编写现代而干净的PHP代码,并抛弃10年前的混乱局面。

因此,让我们看一下过去几年中语言是如何变化,甚至成熟的。我想请您搁置几分钟的偏见,而今天的PHP可能会让您感到惊讶。…

    

chrome的音视频自动播放政策

开源维护者的心理建设

最近知名 Rust 框架 actix-web 的作者宣布不再做开源,在 Rust 社区内外都引发了不少关注。我个人并不使用 Rust,但同为开源维护者,对于这件事有很多感同身受的地方。我对于事情的孰是孰非不想多做评论,对前因后果感兴趣的读者可以自行搜索,这里主要借这个事件谈谈独立开源维护者的心理建设问题。

大部分开发者开始做独立开源(非公司项目)的时候,都是出于很单纯的动机:我写了一个很有用/有意思/没人做过的东西,分享出来给大家看看,要是有人点几个 star 那就美滋滋了。一些负责维护公司项目的同学可能也因为对项目投入了很多,对于项目有着超乎工作责任之外的感情。这些项目里有一部分会获得超出作者预期的增长,然而随之而来的也是超出预期的维护责任:突然你发现自己每天要面对一堆只增不减的 issue,千奇百怪的用户需求,处理不完的用户提问,人们开始拿你的项目跟其他项目比来比去,对你的代码甚至是言论指指点点,甚至为此撕逼... 你工作外的时间基本上都给了开源,然而与此同时,你的项目并没有给你带来什么除了自豪感之外的实质利益,你慢慢开始怀疑自己到底值不值得继续为这个项目投入这么多精力。有时候你觉得,支撑你继续下去的唯一动力仅仅是不敢面对辜负社区的罪恶感...…

什么是CSRF令牌,它如何工作?

许多现代的Web框架(如Laravel或Play框架)都具有内置支持,可保护您的Web应用程序免受跨站点请求伪造  (CSRF)的侵害  。这是一件好事,但是并不是每个开发人员何时以及如何使用它都总是不清楚。在本文中,我尝试给出一些(希望)易于理解的答案。

在潜入之前,让我们提醒自己一些规则和限制:…

    

FFmpeg 视频处理入门教程

FFmpeg 是视频处理最常用的开源软件。

它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。

FFmpeg 本身是一个庞大的项目,包含许多组件和库文件,最常用的是它的命令行工具。本文介绍 FFmpeg 命令行如何处理视频,比桌面视频处理软件更简洁高效。

如果你还没安装,可以根据官方文档 先完成安装。…

异步PHP

这里有一个新的程序包,它称为spatie/async,旨在在PHP中进行异步并行处理。

对于许多Web开发人员而言,PHP中的并行处理似乎是一个边缘案例,但让我们看一下Spatie上的一些用例:

我们想创建一个易于使用的程序包,但是它可以解决我们的用例。上面列出的有些示例将不使用新spatie/async软件包,因为Laravel还提供了一个队列系统。

这就是我们程序包中的异步代码的样子。

use Spatie\Async\Process;

$pool = Pool::create();

foreach (range(1, 5) as $i) {
    $pool[] = async(function () use ($i) {