


Brother Niao talks about the architecture and future development of PHP
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.

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.