HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
php-fig
fig-standards
OPEN SOURCE2012–2025
php-fig / fig-standards

fig-standards

Standards either proposed or approved by the Framework Interop Group

14Distinct people
15Mentions
0Explicit recommenders
12.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Standards either proposed or approved by the Framework Interop Group

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year15 dated mentions

Observed mentions: 2012-06-26 20:03:27 UTC to 2025-07-30 16:54:42 UTC.

02462012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC312
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC615
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC110
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
PHP Framework Interoperability Group The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can work together. Our main audience is each other, but we’re very aware that the rest of the PHP community is watching. If other folks want to adopt what we’re doing they are welcome to do so, but that is not the aim. Proposing a Standard Recommendation To propose a PHP Standard Recommendation (PSR): fork this repo, create a branch, checkout that branch, add the PSR in proposed/, push the branch to GitHub, and send a pull request; or, create a ticket to start a discussion on GitHub; or, start a conversation on the mailing list. GitHub usage All discussion regarding a PSR happens on the mailing list. Issues filed in GitHub are rarely monitored, and PRs are likely to be missed unless a message is sent to the mailing list regarding them. Reviews of a proposed PSR should be conducted on the mailing list, not through PR comments for the same reason. Please do not simply file an issue or PR and walk-away. The most likely outcome is that it will never get seen or addressed. Requesting Membership You do not need to be a voting member to participate in discussion on the mailing list. To become a voting member, you must send an email to the mailing list. The subject line should read: Membership Request: {$your_name} ({$project_name}) The body should include your name, the name of (and link to) the project you represent, and other details you feel are relevant. Current members will vote on your request. Do not combine separate membership requests in a single thread; one request per thread, please. Language & Translations All PSRs are written in British English or American English (Different specifications may vary, but it is consistent within the same specification). The PHP FIG does not offer official translations into other languages but other external entities are free to translate the specifications in accordance with the license. Voting Members The current list of voting members is available on the project website.
Read the full README on GitHub

What Hacker News says

15 sources
Major differences that I can think of between the two are (with regarding to warts and ease of use): PHP 8 uses exceptions with a unified Error hierarchy, there are type errors, division by zero, certain parse errors and so on. PHP 8 has strong support for static typing now, thank goodness. PHP 8 introduces union types (int|float|null). PHP 8.1 introduces intersection types (A&B). PHP 8.1 added the "never" return type. PHP 8 has less repetitive boilerplate. PHP 8 has consistent function signatures now. PHP 8 has consistent object/array syntax now (to be honest, some asymmetries remain). PHP 8 has named arguments for clarity and flexibility. PHP 8 has the nullsafe operator which simplifies deeply nested null checks. PHP 8 has arrow functions which makes closures concise and easier to use. PHP 8 has attributes, e.g. "#[Route("/users")]". PH
Read the rest
P 8 has "match" expressions which is a more predictable, type-safe, and expression-oriented alternative to "switch". PHP 8 has many more tools for testing and debugging (incl. static analyzers). PHP 8 has many new functions (incl. utility functions). PHP 8.1 introduces native enums. PHP 8.1 has "readonly" properties for enforcing immutability. PHP 8.1 has cleaner syntax for referencing callables. PHP 8.1 has "fibers" which enables cooperative multitasking and is a foundational building block for upcoming async/await features. Global namespace pollution has been pretty much resolved (Composer autoloading[1]). There are other ecosystem-level improvements such as PSR standards[1], better async story, etc. This list is non-exhaustive. These are just the improvements that come to mind off the top of my head so I probably missed a lot of other major improvements. PHP 8+ is definitely much easier to use and they greatly reduced PHP's warts. There may be some inconsistencies left here and there, but they are not a deal-breaker IMO, if you even run into them. [1] https://www.phptutorial.net/php-oop/php-composer-autoload/ (I do not use "dump-autoload"), https://github.com/php-fig/fig-standards/blob/master/accepte..., https://www.php-fig.org/psr/psr-4/ (https://www.php-fig.org/psr/) --- I strongly recommend taking a fresh look at PHP 8+. It is very different from the PHP you have once known. It is "modern" now. There are lots of deprecations and removal of old warts. I did not like PHP as much ages ago, but it was a pleasure to use PHP 8+. If you are looking to (re)learn PHP, the book “PHP & MySQL: Novice to Ninja” is a good starting point[1]. There are many other, high-quality books and resources as well. [1] Available on libgen. The source code examples from the book are available on GitHub: https://github.com/spbooks/phpmysql7. --- If you have any specific warts or whatnot, or if you want more resources, please do feel free to let me know. --- I wrote this comment on my phone, so it is not as detailed and it is not structured as well, but I hope that it will still provide some insight into the differences between legacy PHP and modern PHP. Happy to answer any questions!
In URL-Driven State in HTMX
I actually prefer auto-loading, which lets you iterate through a package manager much easier/faster - PHP iterated through PSR-0[0] before landing on PSR-4[1], and you can always build your own (which is what most frameworks pre-composer were doing). With Rails 7 and Zeitwerk, the Ruby community has landed on a very similar auto-loading system as PHP now[2] with constants translating to paths by convention. [0]: https://github.com/php-fig/fig-standards/blob/master/accepte... [1]: https://www.php-fig.org/psr/psr-4/ [2]: https://github.com/fxn/zeitwerk#the-idea-file-paths-match-co...
In PHP – The Right Way
There's so much we can agree upon, right? If you are the geerlingguy I think you are, Drupal sure had an exit after Larry, and Symfony decided to step out too. Laravel didn't really follow PSR to begin with. I use Slim framework extensively nowadays, and it has a surprisingly PSR 2,4,7, AND 15 support. https://github.com/php-fig/fig-standards The repo is quite active.
In 25 Years of PHP
For example, coding standards: `There MUST NOT be a hard limit on line length; the soft limit MUST be 120 characters; lines SHOULD be 80 characters or less.` https://github.com/php-fig/fig-standards/blob/master/accepte... A language that has to permit this kind of thing (or thinks it has to) is just going to lead to developer infighting. This is an important issue because GitHub PRs are going to be unreadable if one developer can insist that "this line needs to be 145 characters..." and then no-one can diff changes to that code. You can break the PR process with this kind of thing.
In PHP in 2019
Great idea, but in order to succeed you need to make the guidelines editable like a wiki, and make the accounts something someone already has. For example, - https://github.com/bbatsov/ruby-style-guide - https://github.com/php-fig/fig-standards These are editable by anyone and people already on GitHub so it makes it easy. I don't want to rain on your parade, I think the site is a great idea, just expressing what I think it would need to succeed. I was trying to go to about or sign up and it timed out, I'll be back later to check it out.
In StackOverflow closed my question, that's why we exist
For a comprehensive list of new major language features, there is a wiki: https://wiki.php.net/rfc#implemented One major feature not listed on the submitted article is namespaces, which is fairly major and it's just starting to reach critical mass in terms of reach. Despite being probably the most major feature in the past five years, most users should be able to enjoy using namespaces to their heart's content (along with all the libraries that utilize it, for example Amazon's latest PHP SDK (which is thoroughly impressive)). For reference, Python3 came out in 2008 and it's also just starting to reach critical mass in terms of library support (cough third-party Django libraries). There is also a third-party committee[1][2] with the goal of establishing things like coding guidelines, logging interfaces, HTTP request/response interfaces, an
Read the rest
In A Look at PHP's Continuing Evolution
So we're wrong to wish for WordPress to adopt PSR standards instead of their own idiosyncratic coding style? I really like PSR compliant PHP code (it's almost PEP 8-ish), the WordPress standards are frustratingly opposite on some key concepts (braces, indentation). But WP is so popular, I don't see how this might ever be resolved. https://github.com/php-fig/fig-standards/blob/master/accepte... http://make.wordpress.org/core/handbook/coding-standards/php...
In Reasons Why WordPress Made PHP Popular, not PHP Frameworks
Learn to love php.net, stackoverflow and this page here: https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet, but don't necessarily trust the code you find on php.net and SO. Comment religiously. You'll thank yourself in six months. You'll save yourself a lot of time if you learn to use Composer (http://getcomposer.org) to manage dependencies, and a templating system (twig, mustache, smarty, what have you) and class autoloading. PSR-0 (https://github.com/php-fig/fig-standards/blob/master/accepte...) is annoying, but it is really convenient once you get past the overhead. If you're on Windows, it really helps to get PHP running from the command line.
In The new php.net
I feel you, but it's just a matter of finding the right circles. I would never apply for a job just because it says 'php', you have to dig deeper. At this point in my career, I would never accept a freelance gig like the one you described, because I know how that goes. You don't need to try other languages, do it only if you want to. If you wanna save time just take my word, Symfony2 has nothing to envy to Django or Rails (I have used them and also digged into their architecture). In fact, it's more modern and better designed. I'll leave these links here, you might find them useful: - http://www.phptherightway.com/ (general advice) - http://getcomposer.org/ (composer, the dependency manager) - https://packagist.org/ (the main composer repository) - https://github.com/php-fig/fig-standards/tree/master/accepte... (accepted conventions) - ht
Read the rest
tp://www.slideshare.net/fabpot/dependency-injection-with-p... (if you liked MVC, DI will blow your mind) - http://fabien.potencier.org/article/50/create-your-own-frame... (an amazing tutorial on how to create a framework, it will let you understand it inside out) - http://symfony.com/download (what should become your next framework) - http://silex.sensiolabs.org/ (minimalistic version of Symfony2, it's called Silex, and might be useful for small websites) If you still want to try something else, try something that has nothing to do with all this, like Clojure. For example, Ruby/Rails is the same as PHP/Symfony2, you won't learn much. I jumped into Rails and just started coding, because I already knew web development, I wasn't impressed, the differences were mostly syntactic sugar, monolithic vs decoupled, and issues like the lack of interfaces and type hinting. But Clojure? Mind blown. I'm gonna spend my next summer learning more Clojure, because I already know it's my perfect language, but it's hard and full of new concepts. Meanwhile, php/Symfony2/nginx is my perfect stack for web development.
In URLs are for People, not Computers
> and it's clear that this stuff is shoehorned into the language and good use of these features is not ingrained into PHP culture. Every major PHP framework uses both namespacing and closures. > The ruby OO model with its mixins, implicit metaclass (eigenclass), and dynamic nature (ie. class definitions are just executable code), and standard functional features like lambdas w/ closures are all designed into the language in a very elegant way and this basic model has been more or less stable for the nearly 20 years of ruby's existence. What you're describing here is the difference in the language itself. The PHP OO model is more traditional and Java-like, but that doesn't implicitly make it worse or behind the times. > However if you look at the corpi of popular open source ruby code vs popular open source PHP code over the years, you fin
Read the rest
d a much higher bar of quality in the ruby code. I can't speak for the Ruby side, but on the PHP side you couldn't be more wrong. The open source efforts in PHP in the last 5 years have been nothing short of excellent. The open source PHP community has completely adopted the full range of PHP features, unit testing (TDD and BDD), and coding standards (https://github.com/php-fig/fig-standards/tree/master/accepte...). This is nothing new and it's been like this for a while.
In Drupal's Golden Handcuffs
hey good post :) I got a few tidbits to add. "if you ever plan on deploying your PHP to a server whose configuration you can't control, then you should always use <?php ?>." I would change that to "always use <?php ?>", if you do you're safe, otherwise you can run into problems (as I have). its a matter of opinion but I would recommend SwiftMailer over phpmailer. And lastly, I would definately put namespacing and code organization in here somewhere, like PSR https://github.com/php-fig/fig-standards/blob/master/accepte... liked the article!
In Show HN: PHP Best Practices, a short guide for common and confusing PHP tasks

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.