流量高峰前的预警与应急

前提 本案前提服务器为 Ubuntu Server 16.04 LTS,Web Server 为 Nginx,Application Server 为 PHP7.0-FPM。 概述 本案用于概述当前服务器架构方案以及业务预警、应急方案; 本案不考虑云 ECS、RDS、REDIS挂掉的问题; 本案仅适合无资源池的部署方案...

PHP 中的数组处理函数

在学习和开发过程中,整理出来一些比较有意思的数组处理函数。 1、array_column() 用于返回数组中某一列。 实现截图: 运行效果:   2、array_filter(),使用callback函数过滤数组 使用形式如 array_filter($array, 'callbackFunctionName'),将删...

PHP 代码执行出错了该怎么办?

我们在开发过程中,常常会遇到一些问题,一个函数体内出现了问题,如何追踪到代码呢? 当然,使用 PHP 自带的错误报告通常能解决大部分问题,那么如何开启 PHP 的调试报告呢? 在 php.ini 中找到 display_errors = Off 和 error_reporting = E_ALL,将 dis...

PHP 常用设计模式

其实设计模式是通用的,不只是限定于 PHP 语言,但是这里使用 PHP 来举例。 工厂模式 使用工厂方法来生成对象,避免了new Class()这种方式,其好处在于如果__construct()的参数变化的话,只需要修改工厂方法而不需要到每个调用的地方去修改。   单例...

PHP 常用但不常见的函数

1、array_splice 要删除数组中的 2 号元素,如果使用unset($a[1]),造成的后果将是: 可以看到,此处数组 2 号元素是丢失的,而如果使用array_splice($a, 1, 1),其结果是: 可以看到,完美的删除了 2 号元素。   2、pcntl_fork() 这是开启 PHP “多...

PHP代码性能优化

本节是我根据自身实践以及参考网络资料和 PHP 手册整理而成,仅讲述 PHP 代码优化,而不考虑数据库相关优化。 最大的优化操作是启用 Zend OpCache(Opcode缓存)。 其他的性能优化便是细节问题了, 变量应当用完就释放,不拷贝变量(如$data = $_GET); ...

PHP的pcntl_fork

PHP是不支持多线程的,如何使用其他方法达到PHP多线程的目的呢? 目前常用的方法是:fsockopen、popen、pecntl_fork、proc_open等,其中fsockopen是利用了socket的多线程,而后三者利用了httpd的多进程。 而四者中最为常用的是pcntl,但pcntl有一个非常大...

TickAPI – TickNet RESTful API

由于团队任务需要,特意开发了一个API,但由于本人对RESTful API设计原则其实并不太熟悉,这是我的第一个成型的按照RESTful原则设计的API,因此如果有什么错误敬请指正。 API 设计概述: API 基于 ThinkPHP 5.0.4 开发; API 遵循 RESTful API 设计原则...

php用curl无法访问https,一个坑爹的错误

从Ubuntu1404用到Ubuntu1604,一直没有出什么问题,最近换到了OSX,才发现OSX下的ter简直就是被阉割之后的一个小工具而已,各种通过brew安装的开发环境和依赖也有形形色色的问题,但好在总算是解决了。 直到一段时间前,发现PHP用CURL请求https的时候会导...

PHP实现数据库操作类

/* *  20170123 UPDATE *  本文发上V2EX后经各位在职程序员指点后终于认识到自身错误 *  这个只能称为“数据库操作类”,而非所谓“ORM” *  本文标题以及内容不作更改,以此为戒 *  以下为原文内容 */ ORM即Object Relation Mapping的简写,...

Top