search
HomeBackend DevelopmentPHP TutorialPHP-FIG: What are you going?

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
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
Explain the concept of a PHP session in simple terms.Explain the concept of a PHP session in simple terms.Apr 26, 2025 am 12:09 AM

PHPsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIDstoredinacookie.Here'showtomanagethemeffectively:1)Startasessionwithsession_start()andstoredatain$_SESSION.2)RegeneratethesessionIDafterloginwithsession_regenerate_id(true)topreventsessi

How do you loop through all the values stored in a PHP session?How do you loop through all the values stored in a PHP session?Apr 26, 2025 am 12:06 AM

In PHP, iterating through session data can be achieved through the following steps: 1. Start the session using session_start(). 2. Iterate through foreach loop through all key-value pairs in the $_SESSION array. 3. When processing complex data structures, use is_array() or is_object() functions and use print_r() to output detailed information. 4. When optimizing traversal, paging can be used to avoid processing large amounts of data at one time. This will help you manage and use PHP session data more efficiently in your actual project.

Explain how to use sessions for user authentication.Explain how to use sessions for user authentication.Apr 26, 2025 am 12:04 AM

The session realizes user authentication through the server-side state management mechanism. 1) Session creation and generation of unique IDs, 2) IDs are passed through cookies, 3) Server stores and accesses session data through IDs, 4) User authentication and status management are realized, improving application security and user experience.

Give an example of how to store a user's name in a PHP session.Give an example of how to store a user's name in a PHP session.Apr 26, 2025 am 12:03 AM

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

What are some common problems that can cause PHP sessions to fail?What are some common problems that can cause PHP sessions to fail?Apr 25, 2025 am 12:16 AM

Reasons for PHPSession failure include configuration errors, cookie issues, and session expiration. 1. Configuration error: Check and set the correct session.save_path. 2.Cookie problem: Make sure the cookie is set correctly. 3.Session expires: Adjust session.gc_maxlifetime value to extend session time.

How do you debug session-related issues in PHP?How do you debug session-related issues in PHP?Apr 25, 2025 am 12:12 AM

Methods to debug session problems in PHP include: 1. Check whether the session is started correctly; 2. Verify the delivery of the session ID; 3. Check the storage and reading of session data; 4. Check the server configuration. By outputting session ID and data, viewing session file content, etc., you can effectively diagnose and solve session-related problems.

What happens if session_start() is called multiple times?What happens if session_start() is called multiple times?Apr 25, 2025 am 12:06 AM

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

How do you configure the session lifetime in PHP?How do you configure the session lifetime in PHP?Apr 25, 2025 am 12:05 AM

Configuring the session lifecycle in PHP can be achieved by setting session.gc_maxlifetime and session.cookie_lifetime. 1) session.gc_maxlifetime controls the survival time of server-side session data, 2) session.cookie_lifetime controls the life cycle of client cookies. When set to 0, the cookie expires when the browser is closed.

See all articles

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

DVWA

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

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.