Table of Contents

PHP RFC: Website Revamp 2026 (Making PHP.net the Ecosystem Hub)

Introduction

The php.net website is the most valuable piece of web property that the PHP project possesses, and yet its content has been left to languish for decades.

The landing page, https://www.php.net, what should be the gateway to the language and the entire PHP ecosystem, is, excluding some minor styling changes, exactly the same as it was 20+ years ago - comprised almost entirely of a list of repetitive release announcements, as demonstrated by this example from 2004 https://web.archive.org/web/20041001080022/http://www.php.net/.

It is my view that it is a serious and regrettable waste of such valuable web real-estate to leave the current landing page as it is, and that changes are necessary, and long overdue.

Proposal

To change php.net, beginning with the landing page, away from being exclusively a tool of technical delivery of release announcements, into the gateway for everything to do with the PHP Product.

What is the “PHP” Product?

Before we can properly evaluate the proposed changes, we must first define what the PHP product is.

The Traditional View

Historically, PHP Internals (The “PHP Project”) has suffered from product tunnel vision - limiting the definition of the “PHP Product” strictly to the core engine, standard library, releases, and official documentation.

While Internals routinely weighs how language changes may affect existing code, they have traditionally viewed the non-technical needs of the wider ecosystem as completely outside the scope of the core PHP Project.

Marketing, promotion, and community prosperity are left almost entirely to third parties - from solo bloggers to heavyweights like Symfony and Laravel.

Internals has deliberately chosen to abdicate their position of power that could otherwise be used to drive the wider success of the language and ecosystem, and instead has chosen to focus on technical delivery, and nothing more.

This isn't exclusively a lack of interest; it’s a deliberate policy of ideological purity. Internals operates on a strict doctrine of absolute neutrality, refusing to do anything that could be perceived as favoring one ecosystem player over another.

To provide an example of its broader implications, this insistence on neutrality is so ingrained that, despite obvious benefits, official PHP websites are effectively forbidden from using powerful third-party frameworks like Symfony or Laravel, simply to avoid accusations of bias.

While individual contributors frequently engage with the community in a personal capacity, the collective as a whole behaves differently.

To an outside observer, the PHP Project deliberately chooses to live inside a walled garden, unwilling to step out and offer greater assistance to the very ecosystem it forms the core of. By effectively acting as gatekeepers to highly valuable ecosystem assets such as http://php.net, they risk denying the opportunity for these resources to be leveraged for the broader good.

The Product-Minded View

Looking at the situation from the perspective of an experienced product engineer, the PHP Engine and its documentation represent only a small portion of the value in what makes up the “PHP” Product, and instead we must look to leverage the ecosystem as a whole for our maximum value and future growth.

While PHP, especially recent versions, are undoubtedly world class runtimes, the PHP engine, by itself, does not offer significantly more value than its competitors such as Node, Python, and Ruby. These engines have, in effect, become commodities.

We must ask ourselves, if PHP in its current form was released onto the web today, absent its ecosystem, would it be a viable contender for new development? We can, with reasonable confidence, conclude that it would not be, and by extension we can extrapolate the true value behind PHP is not solely the engine itself, but everything else that sits around it.

Hundreds of thousands of open source packages including immensely powerful application frameworks. Powerful integrated IDEs and related tooling. Broad and helpful communities. These are the things that, combined with the engine, make PHP a strong choice for modern web development, and without them, PHP would have long since been consigned to irrelevance.

It is the engine AND the ecosystem AND the community support around it that form the “PHP” product. Each acts as a force multiplier for the others. They are inseparable, and without all of them working together, we have no product to “sell” in the modern market.

When I say selling, I do not mean the exchange of money; I mean the ability to convince others that PHP can be a viable solution to their needs, and that they should invest their time and effort into using it, with confidence that it will deliver them success.

Making The Leap

It is my view that Internals and the PHP project as a whole needs to enthusiastically endorse the product-minded viewpoint, and with that perspective, take steps to fully leverage the assets that the PHP project has at its disposal to maximize the benefits to this larger ecosystem and community.

This will be a significant transition, and will trigger deep friction as some members will naturally struggle to adapt to the necessity of moving past their previous insistence on ideological purity, in favour of making calculated trade-offs that benefit the greater product.

Much of the following RFC proceeds on the basis of accepting that this is a necessary and urgent need to adapt to this way of thinking.

Who Are We Designing For? (User Personas)

Our user personas are based primarily on developers, operations, and managers/executives with authority over which languages their teams are allowed to use.

Peter, The Prospect

Peter has never used PHP before, and has only been programming for around 6 months, mainly using Javascript.

Peter landed on php.net because one of his friends recommended that he take a look at it. He knows next to nothing about it, except for it being the constant butt of jokes on the likes of r/programmerhumor.

Peter is in no way invested in PHP; his attention span is short, and he wants to be given a crash course on what PHP is and how to use it as quickly as possible, so he can understand if he can use it to make cool stuff.

Goal: Hold his attention for long enough to get him writing some basic code in the sandbox, and eventually start using PHP for his own development. Bonus points if we can get him to join a community.

Stephen, The Slow Mover

Stephen has been using PHP for several years, along with various other tools and programming languages, however, Stephen works for a company that rarely keeps up with advances in PHP, are currently running 7.4 in production, and don’t know what they’re missing out on .

Stephen landed on php.net because he clicked on the index page link while browsing the documentation, or saw public promotion of the new landing page. Stephen is invested in PHP through his job, but is far away from cutting edge.

Stephen rarely visits the PHP website landing page.

Goal: Offer him confidence, community engagement, and make aware of what he is missing out on with newer versions, leading to trying new functionality either in the sandbox, or upgrading an existing project.

Michelle, The Modernist

Michelle is a senior developer that has been using PHP for 10 years; her work allows her to keep on the cutting edge, and they routinely upgrade to the latest version of PHP each time one is released and make broad use of new features if they are applicable.

Michelle visits php.net every now and then to see what’s new and check the change logs. She has put a few minutes aside specifically to read through the latest news to see what’s coming up.

Goal: Get her involved in the wider community, and maybe have her act as a mentor. Get her interest in participating in elements such as RFCs, helping with documentation, or generally spreading the word.

Oscar, The Operations Manager

Oscar is responsible for managing the web infrastructure at Foo, Inc. He has no involvement in actual development, but needs to ensure that their company servers are up to date with the latest version of PHP for fixes and security.

Oscar visits the site once per month; his only concern is the current releases and if any bugs or security fixes have been released.

Goal: Provide easy access to downloads and change lists, as well as awareness of maintenance windows.

Elena, The Executive

Elena is the CTO of a SaaS company that is looking to build their next product. Elena’s Director of Engineering has come to her and recommended that they should use PHP as their language of choice, and she is now conducting her own research to validate, as best she can, that PHP is a good long-term investment for their company.

Elena is likely to only ever visit the php.net website once; she doesn’t care about syntax or community, she is wanting to see evidence that PHP is a modern, resilient language, that will continue to be supported in the long-term, and that other large companies trust, something that she can use to justify approving its use when the board comes asking.

Goal: Provide confidence that PHP is a viable technology stack to build a product upon.

Anton, The Antagonist Troll

Anton likes to post on r/programmerhumor about how horrible PHP is, because it always gets him lots of Karma. Anton probably hasn’t used PHP since 5.3, if he ever used it at all. He once read “*phpsadness”* and absorbed it until it became his entire personality.

Anton only visits php.net by accident, and immediately clears their browser history after, to hide their shame.

Goal: Don’t give him more ammunition.

The Funnel

The primary purpose of the landing page is not to necessarily educate or inform the user directly with the full context, instead, its goal is to hold their attention for long enough to direct it to the next location that will fulfil a product or marketing objective.

External Resources

Not all desired outcomes necessarily include the user remaining on php.net, and some may depend on external resources.

Example: PHP does not offer its own internal real-time chat environment for the community to occupy. If our target outcome is to have a new user integrate with the community to increase the likelihood that they will remain engaged with PHP as a whole, we must direct them to an external entity such as Reddit, or Discord.

The Design

Work in progress. Feedback is currently being facilitated in the #php-internals channel of the phpc community discord.

https://storage.googleapis.com/mrandall-php-rfc-docs/web26_revamp/web26_full_v1.jpg

The proposed landing page design is heavily based on modern card-based layouts. Individual pieces of content are displayed within distinct boxes, with related content being placed in proximity to each other.

The site has retained its modern technological “dark” theme, although the template is no longer strictly aligned to the main center display area, allowing the use of full-width backgrounds to provide additional separation between major sections, without needing to nest padding within the main content area.

This is not meant to be an end-game that lasts for another 20 years - It is my sincere hope that even if this design is approved, that it will continue to be iterated on, and even repeatedly overhauled over time

web26_php_header_v1.jpg

The primary header graphic remains unchanged at this time.

I think there is plenty of room to make this area much more impactful; it is above the fold and is 75% empty space.

The previous tagline text: “PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.”

Was replaced with: From Solo Developers to Global Enterprises, PHP Powers the Web.

Reasoning: As the very first thing a person sees, we need to have maximum impact. This text is intended to be punchy and authoritative.

Personas

* Peter (The Prospect) - Likely a solo developer looking to learn. The very first thing we say is that this product is perfectly applicable to them. This will keep them looking, rather than thinking that it must be aimed exclusively at large enterprises (e.g. Java EE). By mentioning enterprises it also gives a nod to the idea that there’s work out there in PHP, and they may get a job out of it.

* Elena (The Executive) - Executives love knowing that something is proven by other large companies and organisations. It gives them confidence that they are buying into something that is tried and tested rather than taking a swing at a fad.

* Others - Conveys a general sense of confidence in the language and ecosystem.

Voting

If anyone wishes to propose an alternative tag line during the RFC discussion, and at least a few other people back it, that alternative will be placed into a sub-vote to determine the text, FPTP.

The Hero Cards

web26_hero_buttons_v1.jpg

Immediately beneath the main logo are the hero cards. These are intended to be the immediate next steps in the product marketing funnel, depending on the persona in question.

Buttons

It would be nice to get some relevant images or iconography for each of these. Where’s FontAwesome when you need it?

Try It Now

Launches a WASM-based sandbox where a user can run PHP code directly in their browser and view the output.

Target Persona: Peter (The Prospect) who needs to be able to begin editing code immediately.

Secondary Personas: Given that the sandbox functionality will always use the latest release of PHP, this provides an opportunity for Stephen (The Slow Mover) and potentially even Michelle (The Modernist) to experiment with new syntax and functionality before upgrading.

This is expected to be the single most important button on the entire site for the long-term success of the product. Its purpose is to reduce or effectively eliminate the “time to first code” for new users who would otherwise need to go through a more complicated process of setting up a local development environment, a task which would almost certainly lead to an enormous dropoff in conversions.

Discussions are ongoing about how to execute upon this, including details on how we might want to abstract out some of the less-than-modern “default” PHP behaviours by exposing a micro-framework for the user’s code to run in (request/response objects, pretty error/exception handlers etc), rather than exposing them to the unvarnished truth that almost all will eventually abstract away with a third-party framework anyway.

As a proof of concept, the WASM runtime has already been included in the documentation pages to give certain code examples the ability to run directly within the browser.

Note: It is possible to launch without this page, but it is highly recommended that a concerted effort should be made to deliver this functionality given the critical capabilities it provides.

Why Use PHP?

Navigates to an internal page for Success Stories (https://web-php-pr-1172.preview.thephp.foundation/why-use-php).

Target Persona: Peter (The Prospect), Elena (The Executive)

This page, originally submitted 2 years ago by a different author (8.2 RM Sergey Pantaleev), is awaiting completion and merge.

It breaks almost every rule about mentioning external platforms, providers, and frameworks, thus it would only be viable under the proposed acceptance of the Product Minded View.

Note: It is possible to launch without this page, but it is highly recommended that a concerted effort should be made to deliver this functionality given the significant level of confidence it provides.

Learn

Navigates to the existing documentation landing page.

Target Persona: Peter (The Prospect), Stephen (The Slow Mover), Generally anyone who does development.

Releases

Targets the internal anchor to the “Releases” section described below.

Target Persona: All Developer Roles, Operations

Community

Targets an internal anchor to the “Community” section described below.

Target Persona: All Developer Roles, Operations

Language Development

Targets the internal anchor to the “Language Development” section described below.

Target Persona: All Developer Roles

Voting

* Voting to eliminate any block or page that is targeted by these links will necessarily vote to remove that link from this list of cards.

The Releases Section

web26_php_releases_v1.jpg

Latest Release

The latest release gets a full-width card, to add extreme emphasis for the purpose of this design I copied the CSS-animated effect from the top of the “What’s New In PHP 8.5” page (https://www.php.net/releases/8.5/en.php) giving the background a constant shimmer effect.

The release-specific logo is displayed large and prominent on the left hand side, to the right are nested semi-transparent teaser cards for the major features. These have been copied directly from the current 8.5 release page, however, it is strongly recommended that if we take this approach we attempt to create slightly more condensed versions of this text so the font size can be increased for better WCAG compatibility.

The “Find out More about PHP 8.5” card goes to the above “What’s New” page. A download button is still to be added.

Supported Releases

A deliberate decision has been made to give significantly more space to the previous, but still actively supported releases.

This is a major evolution of the current mechanism.

Each release now includes its logo prominently at the top of the card, although its size is significantly smaller than the latest release. It is assumed that when PHP 9 rolls around that a new, but compatible style will be introduced for those logos to continue the theme.

The “Discover More” button goes to the release-specific pages that have recently (the last few years) been included on each annual release, including much more comprehensive examples, although these will need to be retroactively cleaned up to indicate that they are no longer the most recent release and that users should also view the newest release.

Major Features

The additional space is primarily occupied by a small list of major features, in the form of short labels (significantly shorter than the ones in the current release).

This is to explicitly highlight language evolution. By showing that previous releases also came with useful (and hopefully exciting) features, we emphasise that PHP continues to be enhanced.

This is aimed squarely at the Stephen (Slow Mover) persona, who, being several versions behind, may not be aware of what they are missing out on. This design is intended to immediately draw their attention to the fact that there’s probably quite a lot that they’re missing, and give them an easy avenue “Discover More” to dig into it.

Status Indicators

To highlight the support status of each previous version, a label is added that differentiates between an actively supported for bugfixes and security, vs just security.

This is aimed at the Oscar (Operations) persona. If the version is only in security support it’s time to begin thinking about discussing upgrade strategies with your engineering department.

Voting

* Subvote on the inclusion of the feature list within the previous release cards. * Possibly various styling options depending on how the discussion goes.

PHP Foundation Banner

web26_foundation_v1.jpg

Awareness of the foundation is critical to the long-term success of the language, in that it is Foundation money that is the primary avenue funding engine maintenance and enhancement.

On that basis, this design includes a large PHP Foundation banner, placed on top of a full-width colour block background. It includes external links to the PHP Foundation’s homepage, as well as donation links, all of which open in a new tab.

The highlighting of the Foundation’s goals speaks to the Elena (Executive) persona, clearly indicating that there is a plan in place to keep the language maintained.

Voting

* Include the PHP foundation banner in such a form. If alternative proposals are presented via discussion this may become a choice between how it is shown (or not at all). FPTP.

Community & Events

web26_community_v1.jpg

Communities

The community is one of the fundamental pillars on which the PHP product depends to survive and thrive.

To that end it is an essential objective that we attempt to drive developer personas to participate in those communities, not only for their own benefit, but for the benefits they bring to others such as Peter (The Prospect) who will ultimately benefit from the help that those users will provide via those communities.

Reddit, PHPC Chat, and the Mailing lists, are all already linked directly on the site via the top “Help” tab (https://www.php.net/support.php).

The community links are configured via an include file. The include file may contain as many community definitions as desirable. On each page load, the communities and their order will be randomised by Javascript, showing 3 at a time - This allows us to include more communities, giving each one a probability of being shown on each page view, without needing to include all communities at all times (which is the fallback if JS is unavailable).

This could be extended up to 6 items.

Events

Upcoming events and conferences have been a mainstay on the php.net landing site for 20+ years, but they have typically been represented by a tiny label on the right side of the page.

This change makes them significantly more prominent, by including their logo (contained within an 80×80 rectangle), their title, and what I expect to be a short plain-text \<summary\>...\</summary\> added to the standard Atom feeds used to publish events.

Links currently open to the php.net events page, anchored to the specific event, although this may change if the events page itself gets a revamp.

These events appeal to the developer personas, most specifically the Michelle (Modernist) persona who is most likely to be sufficiently engaged in the PHP community to desire attending real-world events related to it. It also serves to show to all personas that there is a thriving community.

Like with communities, on each page load, the events and their order will be randomised by Javascript, showing 3 at a time.

Votes

* If a sufficiently large number of people (3) bring up adding (or excluding) a specific community during the RFC discussion it can be voted on here. Other than that it is assumed that inclusion will be managed by the usual php-web team.

Composer / Packagist Banner

web26_composer_v1.jpg

Composer and Packagist form the de-facto package and dependency management solution for the PHP ecosystem.

Without these tools (or equivalents) PHP would have long since died from the tedium of either building every single thing from scratch, or dealing with the pain of copying hundreds of files out of ZIPs into source code folders.

These third-party services are incredibly important, likely the most important tools in the ecosystem, and to that end we should promote their existence as essential to the modern way of developing PHP applications.

Neither of these tools has functional competitors.

Votes

* Include composer banner. If alternative proposals are presented via discussion this may become a choice between how it is shown (or not at all). FPTP.

Language Development (Get Involved)

web26_language_v1.jpg

This section focuses entirely on meeting the needs of people who want to gain a much deeper understanding of how the PHP language is made, and potentially even begin contributing to it.

* RFC / Language Proposals - https://wiki.php.net/rfc

* Get Involved - https://www.php.net/get-involved.php (needs some work).

* Documentation Translation - https://doc.php.net/guide/ (debatable if this is a good use of a link?)

PHP on GitHub

Goes to the organization homepage - https://github.com/php/ - Although this is an externally hosted platform this is effectively a first-party repository and I don’t foresee there being any issues.

Submit a Bug Report

Goes to the issues listing page for php-src - https://github.com/php/php-src/issues - Although this is externally hosted, it has the same status as the main GitHub repository and should be fine.

PHP Internals (via [externals.io](http://externals.io))

Although PHP does maintain its own interface for reading the mailing lists (https://news-web.php.net/php.internals) I am of the opinion that for a user first attempting to understand the goings-on of the internals discussion, the 90s-era utilitarian structure of the official PHP mailing list portal is not conducive to their experience, and is likely to lead to them immediately backing out the page.

This is mainly due to a lack of top-level threading support, and meaningful search.

Fortunately, there is a third-party service, http://externals.io, that provides just such functionality, including fully-threaded single-page views of entire conversations. While it does have its own limitations, my view is that externals.io provides a significantly better experience for casual users wanting to understand internals, and our efforts to have them gain that understanding are best served by using this third-party tool.

Votes

* Link to http://externals.io or the internal mailing list http://news-web.php.net