The PHP podcast where everyone chimes in.

Originally aired on

March 9th, 2016

041: The PHP-FIG: Past, Present & Future

The PHP-FIG has really helped the PHP community get onboard the collaboration train with really great standards like the PSR-4 autoloading standard and the PSR-7 HTTP message interfaces.

We discuss PSR-0 through PSR-13 and the process they go through to become standards. We also discuss where the FIG came from and the possible big changes coming to the organization soon.

with


The PHP Framework Interop Group: Past, Present & Future Show Summary


Show note merge conflict. For this episode, both Chris Shaw and Ken Guest sent in a pull request with the show notes which created quite a merge conflict. :) But I'm very happy for your contributions! Thanks so much Chris and Ken!

Intro

  • Misnomers - Phil Sturgeon didn't start the PHP-FIG :lol: (David & Travis were the instigators according to Cal & Paul 53:28).
  • Puntastic fun.

What was the PHP Community like before the FIG?

  • Poor communication and co-operation
  • Frameworks started to establish standards 3:09
  • Multiple competing standards/framework-specific standards
  • PEAR was the closest thing to a standards body 5:07; 5:52 and sound like they were used as the main foundation for the first few PSRs 6:15. But the PEAR Standards didn't keep up with the changing landscape - autoloaders. Evert sounds like he misses PEAR as it was/is more than just a Coding Standard :( 7:04
  • PSR-0 represented the first step towards the PHP-FIG, but it wasn't called PSR-0 at the time. It was just 'an autoloading standard'
  • Backlash from the general community. 8:27

What is the role of a PHP-FIG secretary?

  • Admin tasks
  • Vote tracking
  • Co-ordination
  • Point of contact
  • Impartial - not representing a particular project

What process does a PSR go through to become a standard?

  • See PSR workflow for full process. Core steps are:
  • Proposal
  • Entrance vote
  • PSR is assigned a number
  • Draft
  • Review
  • Final acceptance vote
  • Sometimes this takes a long time. PSR-6 took over 4 years to become a standard

Changes in the PHP-FIG's approach

  • The PHP-FIG is currently undergoing an identity crisis and drafting new by-laws
  • Historically, the FIG has strived to arrive at a 'perfect' standard and set it in stone
  • The group is moving towards a model where standards can evolve
  • One approach being considered is that a PSR must have 2 interoperable real-world implementations before standardization
  • Standards can now be deprecated - this is a new status. PSR-0 is now deprecated in favor of PSR-4
  • PSR-12 will deprecate PSR-2
  • A new status 'abandoned' will also be introduced for standards which are no longer actively being drafted

PSRs currently in draft

  • PSR-5 - PHPDoc Standard
  • PSR-9 - Security disclosure and PSR-10 - Security Advisories (related)
  • PSR-8 - Huggable Interface (an April fools joke).
  • PSR-11 - Container Interface
  • PSR-13 - Hypermedia Links

Why are PSR-1 and PSR-2 different?

  • Paul M. Jones explains that PSRs 1 and 2 were once just the one document and split in two to make them more likely to be adopted.
  • Coding style is a controversial topic
  • Splitting into 2 standards was a way to successfully ratify it
  • PSR-1 deals with the most important/least controversial aspects of coding style
  • PSR-2 deals with aspects that are less important/more open to interpretation
  • The panel talks tabs vs spaces (yeah they went there!)
  • Sammy explaining tabs v Spaces to his dance partner 39:30
  • PSR-12 will deprecate PSR-2 updates PSR-2 to deal with new additions to the language in PHP7 e.g: Return type hints
  • PSR-1 will not be deprecated

There is an entire episode on PSR-7

What is the role of PHP-FIG in the community

  • The panel discusses the role of the PHP-FIG - there are a variety of opinions, both complimentary and conflicting.
  • People want a Standards Body, says Samantha. 59:01
  • Composer born out of the FIG Autoloading PSRs, according to Matthew 56:34

Where is the PHP-FIG going in future?

  • Not officially proposed yet! 1:03:53
  • Member projects vote on PSRs, but there are some problems:
    • It is difficult to achieve quorum
    • Not everyone is engaged
    • Not all of the members are engaged with/knowledgable about every topic
  • A new structure aims to solve some of these problems:
    • Working group structure: people who know/care about the topic become involved in the working group for that specific PSR
    • Core committee
      • Specifications are reviewed by the core committee
      • They don't handle the content of the PSR - just a final QA (e.g: ensure 2 working interoperable implementations)
    • The member projects include the community in the FIG and lend weight to the FIG, but they don't all have to have input on every PSR

Mentions

The PSRs

Cal Evans


Paul Jones

  • Has been working with PHP since 1999, and in that time has been everything from a junior developer to a VP of engineering.
  • Modernizing Legacy Applications in PHP is a step-by-step guide to refactoring an include-oriented page-based spaghetti mess of an application into one that is autoloaded, dependency-injected, unit-tested, layer-separated, and front-controlled.
  • Solving the N+1 Problem in PHP is guide to identifying and resolving a particularly nasty performance problem related to building domain objects using SQL queries.
  • Aura for PHP is a collection of truly-independent library packages; not only are they decoupled from any framework, they are also decoupled from each other so that none of them have any dependencies.
  • Blogs at paul-m-jones.com

Paul Dragoonis

  • PHP-FIG member
  • php.net team member and a key player in the new modernization of php.net
  • PPI Framework Engine, which takes concepts such as hexagonal architecture and microservices, it lets you choose which parts of frameworks you wish to use on a per-feature basis. As such each feature makes its own independent decisions, allowing you to pick the best tools from the best PHP frameworks.

Chris Tankersley



Samantha Quiñones


Michael Cullum

  • Legacy projects (e.g. phpBB or WordPress) you've not looked at in a while to see if they've improved
  • PHP South Coast Conference in the UK

Matthew Weier O’Phinney


Developer Shout-Out

The Developer Shout-Out recognizes developers in the community for their contributions.

For this episode the panel guests, Cal, Paul, Paul, Chris, Evert, Samantha, Michael, and Matthew Weier nominated Adam Culp for the Developer Shout-Out segment.

Thank you, Adam Culp for all your contributions to the PHP community. A $50 Amazon gift card is on its way to you.

$50 Amazon gift card sponsored by Laracasts

Laracasts

It's like Netflix for developers.

Show Notes Credit

Thank you Ken Guest for authoring the show notes for this episode!

If you'd like to contribute show notes and totally get credit for it, check out the show-notes repo!