Home Backend Development PHP Problem Brother Niao talks about the architecture and future development of PHP

Brother Niao talks about the architecture and future development of PHP

Nov 25, 2016 am 11:58 AM
php php development

Hui Xinchen joined the PHP language official development team as a core developer in August 2011. He is currently the only Chinese in the organization and one of the most influential PHP technical experts in the country. As the blogger of the well-known PHP technology blog "Wind and Snow" (http://www.laruence.com/), Hui Xinchen has been focusing on the research and sharing of the underlying principles of PHP. Among them, the series of articles "In-depth Understanding of PHP Principles" has been widely recommended and has become a classic introductory textbook for in-depth use and customization of the PHP language in China. Yaf, the PHP framework he developed based on PHP extensions, is known as the fastest PHP development framework. At the same time, he is also the author of PHP extensions such as Lua and Taint. During the development of PHP 5.4, he contributed nearly 400 deliveries to PHP. This time we conducted an interview with Hui Xinchen and asked him to share his knowledge of PHP framework and extensions, as well as the development of PHP.

InfoQ: Please briefly introduce yourself and your current team.

Hui Xinchen: Hello everyone, I am Hui Xinchen, from northern Shaanxi. Many friends in the PHP circle call me Brother Bird. I would like to take this opportunity to explain to you that I am not Brother Bird from "Linux Private Kitchen", I am just IM's nickname is "Snow Migratory Bird", and because I was considered the oldest among engineers when I was at Baidu, everyone started calling me that.

Currently, I work in the Sina Weibo application architecture team. Our application architecture team is mainly dedicated to optimizing the architecture of Sina Weibo LAMP to meet the needs of high performance and rapid development.

Weibo generates billions of PV every day, generating terabytes of data. Any millisecond optimization or one byte reduction in the processing process is of great significance to us. This work is very interesting and challenging. So far , our team has reduced the response time of Weibo homepage by 44% and increased TPS by 78% through some optimization methods without changing business logic. In addition, our team is also responsible for technical improvement and precipitation work, which is also a very interesting job, because sharing can help us gain more.

InfoQ: As the only Chinese member of the official PHP language development team, please talk about some of your experiences after joining this organization.

Hui Xinchen: The title of "the only one" is definitely temporary. I believe that more domestic developers will join in the future. I joined the PHP development team in August last year. The development team is an open source organization. To be precise, we should be called Committers. There are many students who are not in the development team and provide patches for PHP.

After joining, I have some new experiences on how to operate an open source project. What impressed me the most are the various process specifications. It can range from the process specification of releasing a version to the process specification of adding a new feature. Although these seemingly cumbersome specifications lead to slow response to a certain extent, they ensure that PHP will try to avoid major accidents as it grows. .

Another experience is that English is really important for technical workers. Now I particularly regret not learning English well during my undergraduate studies. Although I have no problem reading materials, I often make jokes during daily communication. There is one The joke is that a developer in the development team said that to understand what I said, you need to read it like a regular expression.

InfoQ: Anyone who has followed your blog for a long time knows that you have been committed to the promotion of PHP. You have also worked for several of the largest Internet companies in China. Can you talk about the development of PHP in China?

Hui Xinchen: On my blog before, I also shared a number, that is, more than 70% of the top 1 million websites in the world are developed using PHP. In my opinion, PHP's ease of learning, ease of use, and ease of expansion are the main reasons why it is so popular. I won't say much about ease of learning and ease of use. Here I want to mainly talk about PHP's scalability.

PHP provides a very powerful extension build system. Using this extension build system, we can easily extend PHP functions. There are currently more than 200 standard extensions in the PECL extension library.

When I started doing PHP extensions in 2008, there was almost no relevant Chinese information on the Internet, but now we see that there is very abundant information online. More and more developers are trying to solve the problems they encounter by extending PHP, and the open source spirit of PHP has more or less influenced developers to open source these extensions to the community. These are the reasons why I think PHP can continue to develop in the long term. main driving force.

InfoQ: You are the author of the open source framework Yaf. Please briefly introduce the characteristics of the open source framework Yaf.

Hui Xinchen: For a long time, there has been a lot of debate about whether to use frameworks in PHP. The more common contradiction is that after using frameworks, the development speed becomes faster but the performance is not guaranteed.

Yaf was developed to solve this contradiction. It is an MVC framework that uses PHP extension (C language) to implement PHP. Its biggest features are high performance (compared to traditional frameworks implemented in PHP) and low resources. consumption while ensuring rapid development.

Yaf mainly provides routing, distribution, automatic loading, plug-in mechanism, and a simple and high-performance view engine. These functions are essential for every MVC framework and are not volatile, so they are suitable for implementation by extensions.

InfoQ: Regarding the Yaf framework, what are your next development plans?

Hui Xinchen: My point of view is that Yaf should develop in the direction of becoming more refined and specialized in the future. For example, compared with Yaf 1.0, Yaf 2.0 does not add new features, mainly architecture redesign and performance tuning. I don't want Yaf to become a "super comprehensive" that wants to cover all functions. I just hope that it can provide a simple, efficient and scalable tool for developers who pursue high performance, and contribute to a "low-carbon" life.

In addition, I would like to thank my friends who like Yaf. Yaf currently has many users in the community. This is something I did not expect when I first released Yaf. Some very enthusiastic friends provided Yaf with Windows releases and established User exchange forums, QQ groups, etc. I have the heart to do these things but don't have the energy to do them. Their enthusiasm is what drives me to continuously improve Yaf. I am very grateful to these friends.

InfoQ: Can you conduct a simple analysis of the advantages and disadvantages of the PHP frameworks Zend, Yii, and CakePHP?

Hui Xinchen: These frameworks are all excellent PHP frameworks. I have used Zend and Yii in previous projects, but unfortunately I have not had the opportunity to use CakePHP. Let me talk about my personal understanding.

Zend Framework is a PHP development framework developed by Zend Company. It is well-designed, powerful, has a wide range of users, has complete documentation, and has an active community. Its code is written in a standardized and neat manner, making it very suitable for PHP developers to read and learn. The disadvantage is that it is slightly bloated and has low performance.

What impressed me most about Yii is AR, which is very convenient in actual development and provides automatic generation tools for the system. I personally like Yii very much. However, the shortcomings of AR are also obvious. It takes up a lot of resources and is not suitable for large data applications.

InfoQ: Please recommend three PHP extensions you developed. Why do you recommend these three extensions?

Hui Xinchen: There are only 4 open source extensions I wrote, and in chronological order they are Yaf, Lua, Taint, and Couchbase. They each have different problems to solve. Let me briefly introduce these extensions.

Yaf has been introduced before and will not be repeated here.

Lua is an encapsulation of the Lua engine in a PHP extension. It supports running Lua scripts in PHP and can exchange data with Lua scripts. Taint is an XSS, Sql & Shell injection detection extension. It is mainly used to make up for some points that static detection scripts cannot cover.

Couchbase is an encapsulation of Couchbase Client, and Couchbase Server is a high-performance and high-real-time K-V database. By the way, our Sina Weibo application architecture team is still developing some extensions for Sina Weibo. These extensions are to solve some practical problems for Weibo. After the usability and stability of these extensions are verified, we will open source them and give back to the community. of.


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles