Table of Contents
What is PHP-FIG and why is it important?
What does "Quo Vadis" mean in the context of PHP-FIG?
How does PHP-FIG contribute to the PHP community?
What are some criticisms of PHP-FIG?
How do I participate in PHP-FIG?
What is the meaning of the word "Quo Vadis" in art and literature?
How does PHP-FIG decide on new standards?
What is the future of PHP-FIG?
How does PHP-FIG work affect daily PHP developers?
What are some practical examples of the PHP-FIG standard?
Home Backend Development PHP Tutorial PHP-FIG: What are you going?

PHP-FIG: What are you going?

Feb 10, 2025 pm 12:20 PM

PHP-FIG, Quo Vadis?

The future of the PHP Framework Interoperability Group (PHP-FIG): Where to Go?

The PHP Framework Interoperability Group (PHP-FIG) has made significant progress in attracting positive attention from PHP by adopting more PHP standard recommendations (PSR). These recommendations regulate coding standards, style guides, autoloading, logging, caching, and HTTP messages.

However, due to internal disputes and the exit of well-known projects and individuals, the future of PHP-FIG is uncertain. The organization has been criticized for intensifying bureaucracy and negative climate, hindering effective participation.

This article believes that PHP-FIG should simplify its operation and pay more attention to improving communication and discussion of PSR. This may include making it easier for non-experts to participate and reducing the approval time for PSRs.

The author believes that the future of PHP-FIG depends on whether it can refocus its initial interoperability goals. This means less emphasis on governance and management, and more focus on generating interoperable code.

Thanks to Andrew Carter, Younes Rafie and Scott Molinari for their peer review of this article!

Polish writer Henrik Xiankvich won the 1905 Nobel Prize in Literature for his epic novel Quo Vadis (Latin, meaning "Where are you going?"). Facing any dilemma, a brief pause and redefining goal may be effective.

PHP-FIG, Quo Vadis?

PHP-FIG has matured. With the adoption of more PHP standard recommendations (PSRs), PHP has won more positive attention and appreciation from the programming community. PSR specifies encoding standards, encoding style guides, automatic loading, logging, caching, and HTTP messages.

Other proposals at different draft and review stages cover hypermedia links, PHPDoc standards, event management, caching and security issues. There is even a proposal for the “Huggable Interface” (PSR-8), which discusses embraceable objects and mutually guaranteed hugs!

However, the future is not bright, and the persistence of conflicts within the organization has been questioned.

Origin

The seeds of PHP-FIG were planted at the php|tek conference in 2009, when some developers gathered together to share ideas. This is out of concerns about fragmentation within the PHP community, which is gathered on different frameworks and application islands. FIG should be the equivalent of PHP's Java community process, a platform for developing Java standard technical specifications.

Their purpose is to create a forum to discuss common issues facing PHP projects and to find ways to collaborate and interoperability through collaboration. They want it easier to share completed work across projects.

Organization

Entertainment is as simple as subscribing to Google Group Mailing List or joining an IRC channel. Voting membership is required to vote for deliberations.

General administrative responsibilities are performed by three secretaries, who are elected in different months each year for two years. Details of the day-to-day operation of the organization can be found in the charter section of the PHP-FIG website.

Successfulness

As mentioned above, PSR-4 (Auto Loading Standard) describes the specification for automatically loading classes from file paths. It is designed to be fully interoperable and can be used to complement any existing autoloading specifications, including PSR-0 (the deprecated autoloading standard). This PSR also describes the location of files that are automatically loaded according to the specification.

Using Composer (PHP-FIG voting member), it is very easy to install and use PSR-4 compliant packages. Frameless packages like Carbon can be put in any PSR-4 compliant application without any problem.

Similarly, PSR-7 (HTTP Message) opens a broader door to interoperability by proposing specifications describing HTTP requests and responses. PSR-13 (HTTP middleware) will build on PSR-7 and further promote the boundaries of interoperability between specification-compliant frameworks and applications.

The valuable goals of the pending PSR may not be achieved because the foundation of the organization itself is under threat.

Controversy

The current situation can be summarized in this post on the mailing list: "The increase in legalism and bureaucracy has dominated and has hindered the good work of the group's formation. To put it bluntly, the FIG has become more important in recent months. Becoming increasingly toxic, making effective participation almost impossible. "Bureau." toxicity.

Mailing lists receive a large number of messages that are beyond the scope of interoperability technology discussion. Here are examples of topics: "Conflict of Interest of Secretary", "Harmony between Secretary", "Amendment to the eviction vote", "How can you tolerate this person?!", "Change of eviction by eviction charter", "Request for voting to eviction xxxxxx ”, “Announcement of invalid xxxx membership” and so on.

There is even a recent theme – an alternative to FIG 3.0 – is it time to announce that FIG is done? The premise is that FIG has done its job and does not require FIG 3.0, so let's disband PHP-FIG. The FIG 3.0 proposal is a rewrite of the organization's complex constitution, structure and process. Some, including the author of the post about disbanding the group, would argue that FIG 3.0 is trying to replace bureaucracy with more complex bureaucracy.

The exit of well-known projects such as Laravel, Doctrine, Propel, Guzzle, PHP League and Assetic and the departure of individuals have not improved the situation. An attempt to expel one of the three secretaries failed in the voting barrier. Perhaps in protest, the PHP Community Driven Standard (PHP-CDS) was established, with a very loose structure and a low barrier to entry for proposals.

According to them, "PHP CDS is not a group or organization, it is a concept. The core idea is to have the community create RFCs, discuss them, and then vote on their acceptance as community standards." The term PHP Community Standard ( PCS) echoes Java Community Process (JCP), but when the organization is first established, it may be just a protest against conflicts within the FIG.

Harmony future

Over the years, the open source community has embodied goodwill and harmony, with its model winning praise from companies selling proprietary solutions (usually closed source).

The Apache Software Foundation, which supports a wide range of projects including the extremely popular Apache HTTP server, remains strong. The Linux Foundation provides a home for Linux kernel projects, which is probably the largest and most important open source project in the world. Then there is a strong community gathering around excellent software such as Symfony, Drupal, Composer, Guzzle, etc.

Maybe the project developed or supported by a company entity is well done. Perhaps a project started and led by a respected and admired person.

Disharmonious notes

If the open source community has seen the best of humanity, it has also seen its fair share of verbal cruel attacks and civil strife. People often disagree – neighbors don’t always agree. Motorists on the highway will find a way to express their dissatisfaction with each other. This is the fact of life as a sociable animal.

Linus Torvalds is undoubtedly a genius, but you wouldn't want to put him on the top of the list of diplomat positions. Of course not someone who obviously wrote to the mailing list, “Can we get rid of the stupid web annotation grammar style of brain damage, please?” Or, in another message, “good” comments, for example, “I’m a Bastard. I have no idea why people think I'm not. Yet they do. People think I'm a good guy, and in fact I'm a sinister and sly bastard, if that just leads to what I think is a better system, I Not caring about any hurt feelings or lost work hours. I'm not kidding. I'm really not a good person. I can say 'I don't care' and really think so. "Okay, No one was so annoyed by these words or his comments about pulling requests that he continued forking the Linux kernel.

Around 2014, Github suffered its own earthquake, when a female employee made some claims about sexism, harassment and intimidation in the office. There are many aspects of the story, the most important of which are some ladies hula-hooping along with the music during office hours, while male geeks multitasking – coding and staring at the dancer at the same time. Apart from frivolity, she claimed: “It’s hard for me to adapt to this culture, pulling offensive communication on requests and how the men I work with disrespect and value my opinions.” When her “characteristics start to be inappropriate where (such as pull requests and issues) were discussed, she was shocked.

There are other aspects of the Github story, but it shows that when two or three developers are together, there will be differences between them. Disharmony is part of human experience. How we deal with offensive perceptions of those around us reveals a lot of information.

The way forward

PHP-FIG is on the delicate road to implosion. What we have witnessed since its emergence is the strongest argument for its persistence. However, the idea of ​​replacing so-called broken bureaucracy with new bureaucracy disguised by FIG 3.0 is based on the premise that good bureaucracy exists. The charter page and voting process on the FIG website are too complicated. How to simplify the operation of FIG? How to focus only on interoperability and not on implementation details?

The path forward may be less bureaucracy and more focus on how to improve communication and discussion on PSR. Maybe it should make it easier for “non-experts” to participate in the process to promote inclusion? Some PSRs have been in the pipeline for more than 5 years. Does it really take so long?

Admiring Linus Torvalds as a person, let's stop and listen. He was quoted as saying, "Empty talk is wrong. Show me the code." Another - "Do what you can do. If you can't do, complain." I can't do it, but I won't complain. In the FIG, say less and do more, and more interoperable code, although the implementation of concepts is different, the better the future.

FAQs (FAQs) about PHP-FIG and Quo Vadis

What is PHP-FIG and why is it important?

PHP Framework Interoperability Group (PHP-FIG) is a collaborative project designed to standardize and simplify how PHP developers write code. It is important because it promotes best practices, encourages code sharing and reuse, and improves interoperability among different PHP frameworks. By following the PHP-FIG standard, developers can ensure that their code is easier to maintain, expandable, and robust.

What does "Quo Vadis" mean in the context of PHP-FIG?

"Quo Vadis" is a Latin phrase that translates to "Where are you going?" In the context of PHP-FIG, it refers to the future direction and development of the group. This is a question that encourages reflection on the group's goals, strategies and progress.

How does PHP-FIG contribute to the PHP community?

PHP-FIG contributes to the PHP community by creating and promoting a standard called PSR (PHP Standard Recommendations). These standards provide guidance for common coding tasks such as coding style, autoloading, and logging. By following these standards, developers can ensure that their code is compatible with other PSR-compliant code, making it easier to collaborate and share code.

What are some criticisms of PHP-FIG?

Some critics believe that the PHP-FIG standards are too standardized and limit the flexibility and creativity of developers. Others believe that the group’s decision-making process is too slow and bureaucratic. However, many developers appreciate the stability and interoperability provided by the PHP-FIG standard.

How do I participate in PHP-FIG?

Anyone can participate in PHP-FIG by participating in discussions on the group's mailing list or contributing to their projects on GitHub. You can also help by promoting PHP-FIG standards in your own projects and encouraging others to do so.

What is the meaning of the word "Quo Vadis" in art and literature?

"Quo Vadis" is a phrase that has been used in various artistic and literary forms, often symbolizing moments of decision-making or reflection. This is a powerful metaphor that can be applied to many different contexts, including the evolution of PHP-FIG.

How does PHP-FIG decide on new standards?

The PHP-FIG community proposes and discusses new standards. Proposals go through a rigorous review process, including the voting phase, before being accepted as formal standards.

What is the future of PHP-FIG?

The future of PHP-FIG depends on the continued participation and contribution of the PHP community. The group is constantly working to develop new standards and initiatives to improve PHP development practices.

How does PHP-FIG work affect daily PHP developers?

PHP-FIG standards can make it easier for developers to write, share and maintain their code. By following these standards, developers can ensure that their code is compatible with various frameworks and libraries, thereby improving their usefulness and longevity.

What are some practical examples of the PHP-FIG standard?

Many popular PHP frameworks and libraries, such as Laravel, Symfony, and Zend, comply with PHP-FIG standards. This means that code written for one framework can often be used with another framework with minimal modifications, making it easier for developers to switch between frameworks or combine different technologies in projects.

The above is the detailed content of PHP-FIG: What are you going?. For more information, please follow other related articles on the PHP Chinese website!

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)

How does session hijacking work and how can you mitigate it in PHP? How does session hijacking work and how can you mitigate it in PHP? Apr 06, 2025 am 12:02 AM

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

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,

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to debug CLI mode in PHPStorm? How to debug CLI mode in PHPStorm? Apr 01, 2025 pm 02:57 PM

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

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.

How to send a POST request containing JSON data using PHP's cURL library? How to send a POST request containing JSON data using PHP's cURL library? Apr 01, 2025 pm 03:12 PM

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

See all articles