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

伊谢尔伦
伊谢尔伦Original
2016-11-25 11:58:525715browse

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:
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