[VOTE][Accept] PSR-6 Caching Interfaces

3,939 views
Skip to first unread message

Paul Dragoonis

unread,
Nov 24, 2015, 7:59:57 AM11/24/15
to php...@googlegroups.com
Hi Group,

The required review period for PSR-6 has passed. I'm putting this up for up officially for a vote.

There are 43 members, so 15 members must vote in order to meet quorum and half or more of the votes must be In Favour in order for PSR-6 to be Accepted.


Many thanks,
Paul

Dracony

unread,
Nov 24, 2015, 8:54:51 AM11/24/15
to PHP Framework Interoperability Group
+1 from PHPixie

Let's push it out the door finally :P

Chris Tankersley

unread,
Nov 24, 2015, 9:11:30 AM11/24/15
to php...@googlegroups.com
+1 from Sculpin

-Chris

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Brian Retterer

unread,
Nov 24, 2015, 9:13:07 AM11/24/15
to PHP Framework Interoperability Group
A BIG +1 from Stormpath PHP SDK

Josh Lockhart

unread,
Nov 24, 2015, 9:13:57 AM11/24/15
to PHP Framework Interoperability Group
+1 Slim

Larry Garfield

unread,
Nov 24, 2015, 10:37:47 AM11/24/15
to php...@googlegroups.com
+1

--Larry Garfield, Drupal (duh)
> --
> You received this message because you are subscribed to the Google
> Groups "PHP Framework Interoperability Group" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to php-fig+u...@googlegroups.com
> <mailto:php-fig+u...@googlegroups.com>.
> To post to this group, send email to php...@googlegroups.com
> <mailto:php...@googlegroups.com>.
> <https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

--
--Larry Garfield

Nils Adermann

unread,
Nov 24, 2015, 11:43:52 AM11/24/15
to php...@googlegroups.com
+1 from phpBB

Korvin Szanto

unread,
Nov 24, 2015, 11:51:22 AM11/24/15
to php...@googlegroups.com
+1 concrete5
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/565493C4.1060908%40naderman.de.

Jeremy Lindblom

unread,
Nov 24, 2015, 12:01:42 PM11/24/15
to php...@googlegroups.com
-1 from Guzzle

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.

guilher...@gmail.com

unread,
Nov 24, 2015, 12:11:02 PM11/24/15
to php...@googlegroups.com
Unanimous -1 from Doctrine among all core developers.
List of deficiencies too big and not pertinent to this thread.

[]s,


For more options, visit https://groups.google.com/d/optout.



--
Guilherme Blanco
MSN: guilher...@hotmail.com
GTalk: guilhermeblanco
Toronto - ON/Canada

Robert Hafner

unread,
Nov 24, 2015, 12:11:17 PM11/24/15
to php...@googlegroups.com
+1 Stash

On Nov 24, 2015, at 4:59 AM, Paul Dragoonis <drag...@gmail.com> wrote:

--

Matteo Beccati

unread,
Nov 24, 2015, 1:58:56 PM11/24/15
to php...@googlegroups.com
Hi,

> The required review period for PSR-6 has passed. I'm putting this up for
> up officially for a vote.

-1 from Revive Adserver


--
Matteo Beccati

Development & Consulting - http://www.beccati.com/

Cal Evans

unread,
Nov 24, 2015, 2:00:13 PM11/24/15
to php...@googlegroups.com
+1 Community

=C=

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.



--
How to find, hire, and retain developers

Jordi Boggiano

unread,
Nov 25, 2015, 5:39:37 AM11/25/15
to php...@googlegroups.com
+1 for Composer - with one regret and one comment, neither warrants a
huge discussion I think so I'll leave them here..

- CacheItemPoolInterface is the interface everyone will need to hint
against and it really is the only name that matters in the whole PSR
IMO, I really wish it was just CacheInterface or so, the current one is
damn verbose, but so it goes.

- The docblocks have the arg/return value description on the next line,
I am not sure if that's valid, but I never saw anyone do this. I don't
really mind except for the fact that the description is indented between
0 and 3 spaces in CacheItemPoolInterface - I hope this can be harmonized
at least in the code repo that everyone gets to use as it's only formatting.

Best,
Jordi
> --
> You received this message because you are subscribed to the Google
> Groups "PHP Framework Interoperability Group" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to php-fig+u...@googlegroups.com
> <mailto:php-fig+u...@googlegroups.com>.
> To post to this group, send email to php...@googlegroups.com
> <mailto:php...@googlegroups.com>.
> <https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.


--
Jordi Boggiano
@seldaek - http://seld.be

Leo Feyer

unread,
Nov 25, 2015, 5:43:48 AM11/25/15
to php...@googlegroups.com
Besides the phpDoc comments, which need to be fixed, +1 from Contao.

signature.asc

Matteo Beccati

unread,
Nov 25, 2015, 5:47:22 AM11/25/15
to php...@googlegroups.com
Hello everyone,

I'm starting a new thread to explain the -1 vote(s) for PSR-6, so that
we don't clutter the voting.

First of all, I admire the work that has been put into the proposal and
I feel that the result is much improved compared to what we had one year
ago.

However, its interface doesn't cover what would be the main usage in our
project, where allowing (slightly) stale data (origin unreachable,
stampede protection) is very important, but explicitly forbidden by PSR-6.

In my personal experience, which could as well be very biased, this is
more common than having to consider a cache entry totally unreliable at
a certain point in time (vs a consequence of an action that leads to
invalidation).

Of course we could work around it, but adopting PSR-6 would mean
rewriting half of the implementation to add a second custom "soft"
expiration. See the old threads for more info.


Cheers

Jordi Boggiano

unread,
Nov 25, 2015, 5:51:59 AM11/25/15
to php...@googlegroups.com
On 25/11/2015 10:47, Matteo Beccati wrote:
> However, its interface doesn't cover what would be the main usage in our
> project, where allowing (slightly) stale data (origin unreachable,
> stampede protection) is very important, but explicitly forbidden by PSR-6.
>
> In my personal experience, which could as well be very biased, this is
> more common than having to consider a cache entry totally unreliable at
> a certain point in time (vs a consequence of an action that leads to
> invalidation).

I wouldn't go as far as more common but yes it's an interesting and
valid use case IMO, but it could well be a future extension to the PSR I
think, this one is just the level-0 basics of caching with simple expiry.

Cheers

Alexander Makarov

unread,
Nov 25, 2015, 5:59:10 AM11/25/15
to PHP Framework Interoperability Group
+1 from Yii.

Matthew Weier O'Phinney

unread,
Nov 25, 2015, 7:05:13 AM11/25/15
to php...@googlegroups.com

+1 from Zend Framework.

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com.

Taylor Otwell

unread,
Nov 25, 2015, 8:05:39 AM11/25/15
to PHP Framework Interoperability Group
-1 Laravel

Lukas Kahwe Smith

unread,
Nov 26, 2015, 10:13:04 AM11/26/15
to php...@googlegroups.com
+1 from Jackalope

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAKxcST-K1Cw1yuqA5m4E5fmMchv8HhgeoNxcsfx2in%3DvtTvxvA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

regards,
Lukas Kahwe Smith



signature.asc

Jeroen De Dauw

unread,
Nov 29, 2015, 7:50:16 AM11/29/15
to PHP Framework Interoperability Group
-1 from Wikibase & SMW

Shefik

unread,
Nov 29, 2015, 8:08:19 AM11/29/15
to php...@googlegroups.com
+0 from Zikula

On Nov 29, 2015, at 7:50 AM, Jeroen De Dauw <jeroen...@gmail.com> wrote:

-1 from Wikibase & SMW

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.

Ryan Thompson

unread,
Nov 30, 2015, 9:46:28 AM11/30/15
to PHP Framework Interoperability Group
+1 PyroCMS

Kris Wallsmith

unread,
Nov 30, 2015, 3:42:49 PM11/30/15
to PHP Framework Interoperability Group
+0

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.

André R.

unread,
Nov 30, 2015, 9:59:25 PM11/30/15
to PHP Framework Interoperability Group
+1 from eZ

Evert Pot

unread,
Dec 1, 2015, 1:52:14 AM12/1/15
to PHP Framework Interoperability Group
+1 sabre/dav

Michiel Rook

unread,
Dec 1, 2015, 4:55:06 PM12/1/15
to php...@googlegroups.com
+1 from Phing


On 24-11-2015 13:59, Paul Dragoonis wrote:
Hi Group,

The required review period for PSR-6 has passed. I'm putting this up for up officially for a vote.

There are 43 members, so 15 members must vote in order to meet quorum and half or more of the votes must be In Favour in order for PSR-6 to be Accepted.


Many thanks,
Paul
--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.

Robert Hafner

unread,
Dec 5, 2015, 3:39:43 PM12/5/15
to php...@googlegroups.com
I know I’m late, but this statement is 100% wrong. Stash has been running PSR-6 in a separate branch, and it has been doing so with stampede protection in place. One of the best features of Stash is around stampede protection, and I would never support a standard that disallowed it.

Rob
> --
> You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
> To post to this group, send email to php...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/565591AC.2080204%40beccati.com.

Matteo Beccati

unread,
Dec 5, 2015, 5:31:08 PM12/5/15
to php...@googlegroups.com
On 05/12/2015 21:39, Robert Hafner wrote:
> I know I’m late, but this statement is 100% wrong. Stash has been
> running PSR-6 in a separate branch, and it has been doing so with
> stampede protection in place. One of the best features of Stash is
> around stampede protection, and I would never support a standard that
> disallowed it.

I don't think I wrote that PSR-6 disallows stampede protection per se.

I was talking about a specific implementation, i.e. returning stale data
while a single process updates the entry. I don't know if Stash does
that, but if it does that bit is not ok according to PSR-6.

Robert Hafner

unread,
Dec 5, 2015, 6:18:18 PM12/5/15
to php...@googlegroups.com

So this is complicated. Stash goes with a “precompute” method, where it has a single process update the entry while the data is still good, prevent a cache miss from ever occurring to begin with.

However, for a full HTTP caching implementation this shouldn’t be a problem. HTTP has an equivalent to the expiration we have, and that’s the “MAX-STALE” value. That value defines the maximum allowed amount of time that the http response should be served when the origin is unreachable but the cache has already hit it’s expiration.

To properly cache HTTP requests you’re already going to have to save multiple expiration times- the “soft” expiration that defines when the data goes stale, and the hard expiration defined by max-stale. Otherwise you’re ignoring the HTTP standard and potentially serving content that shouldn’t be. If you are going to tie your object cache expiration with your http response expiration then the proper one to tie it to is the max-stale value, as those are analogous to each other.

So I will say that the use case you mentioned is not explicitly forbidden by PSR-6, but I will admit that you may need to do some reworking in your application to get the exact results you are looking for.

Rob
> --
> You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
> To post to this group, send email to php...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/56636598.7070806%40beccati.com.

Nicolaas Thiemen Francken

unread,
Dec 7, 2015, 8:49:09 PM12/7/15
to PHP Framework Interoperability Group
-1 

from just me ... 

I have had a quick look at this only, but it feels overly complicated and not generic enough. 

Jordi Boggiano

unread,
Dec 8, 2015, 4:37:24 AM12/8/15
to php...@googlegroups.com
I'll have to change to -1 due to some of the concerns that came up. I
know it sucks they didn't come up before, but I'd still rather take a
few extra weeks and get this fixed up and really good to go for years to
come than rushing it through at this point.

Best,
Jordi

Paul Dragoonis

unread,
Dec 8, 2015, 10:33:13 AM12/8/15
to php...@googlegroups.com
+1 from PPI

To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/5666A4D1.8070101%40seld.be.

Robert Hafner

unread,
Dec 8, 2015, 12:17:27 PM12/8/15
to php...@googlegroups.com
In six days (on December 14th) it will have been four years since we started this. Rushing through is not happening on any level.

We have a review period, which we reset multiple time. That was the appropriate time to bring things up, and frankly we resolved all of the issues that *were* brought up. The fact that some members did not bring up issues until the voting is incredibly frustrating- had they taken their responsibilities towards this group seriously they would have used the review period for what it’s for.

I guess what I’m saying is it doesn’t suck that you changed your vote, it sucks that you waited until now to express your concerns over the proposal.

Rob
> To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
> To post to this group, send email to php...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/5666A4D1.8070101%40seld.be.

Jordi Boggiano

unread,
Dec 8, 2015, 1:27:17 PM12/8/15
to php...@googlegroups.com

I brought up a couple things that I didn't consider critical when I voted +1 but since then other people (Aaron yesterday and Tobion today) brought things up that IMO are more important and need to be clarified before we call it done. As I said it sucks that this wasn't brought up before but I still prefer to have this feedback now than two weeks after the vote passes. I can only commend people for trying to implement it and read the spec in details *before* it passes.

Best,
Jordi

Korvin Szanto

unread,
Dec 8, 2015, 2:36:34 PM12/8/15
to PHP Framework Interoperability Group
I believe this vote has already closed looking at the time of day that it opened, hilariously Paul Dragoonis did not vote in time.

Aaron Scherer

unread,
Dec 8, 2015, 2:44:49 PM12/8/15
to PHP Framework Interoperability Group
I am not a member of FIG. In fact, i unsubscribed from fig, during the last bout of drama regarding this PSR.

Paul Dragoonis

unread,
Dec 8, 2015, 5:13:37 PM12/8/15
to php...@googlegroups.com
Hi FIG Group & PHP Community,

It's my responsibility to announce that as of 04:59:53 -0800 (PST) today PSR-6 vote passed in favour. Here are the results.

For: 16
Abstain: 2
Against: 6

Amount required to meet quorum: 15
Amount of members voted: 24
Amount of members in group: 43

Time spent on this proposal: 4 years

This has been the longest running and arguably most controversial proposal to date, so on that here are some closing notes.

1. Remember that this is a cache recommendation and nobody is forced to implement it, just like any other recommendation the group publishes.

2. Remember that if there was a clear simple way to implement caching then there wouldn't be so many different libraries out there already. There's more than one way to skin a cat, and not everyone is going to agree. We all have to, as a community, accept this.

3. Most importantly, remember to be respectful and polite to other community member's opinions.

Thanks to everyone to contributed to the proposal along this eventful journey. Onward to the next one!

Cheers,
Paul Dragoonis
PPI Framework Team






Paul Dragoonis

unread,
Dec 8, 2015, 5:22:47 PM12/8/15
to php...@googlegroups.com
One clarification is inline.

On Tue, Dec 8, 2015 at 10:13 PM, Paul Dragoonis <drag...@gmail.com> wrote:
Hi FIG Group & PHP Community,

It's my responsibility to announce that as of 04:59:53 -0800 (PST) today PSR-6 vote passed in favour. Here are the results.

For: 16
Abstain: 2
Against: 6

Amount required to meet quorum: 15
Amount of members voted: 24
Amount of members in group: 43

Time spent on this proposal: 4 years

This has been the longest running and arguably most controversial proposal to date, so on that here are some closing notes.

1. Remember that this is a cache recommendation and nobody is forced to implement it, just like any other recommendation the group publishes.

2. Remember that if there was a clear simple way to implement caching then there wouldn't be so many different libraries out there already. There's more than one way to skin a cat, and not everyone is going to agree. We all have to, as a community, accept this.

To clarify: "Accept this" means: we have to accept that we're not always going to agree on everything, but have to, as a community, come together. Thanks.

Roman Tsjupa

unread,
Dec 8, 2015, 6:41:54 PM12/8/15
to PHP FIG

Barely a half of the projects actually voted on this. That is rather disheartening. I can get not voting on membership requests, but voting on the actual PSRs is kind of the very point of having a vote.

You received this message because you are subscribed to a topic in the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/php-fig/dSw5IhpKJ1g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to php-fig+u...@googlegroups.com.

To post to this group, send email to php...@googlegroups.com.

Christopher Pitt

unread,
Dec 8, 2015, 7:41:02 PM12/8/15
to PHP Framework Interoperability Group
Perhaps due to the amount of backlash the current form was receiving...

Mike van Riel

unread,
Dec 9, 2015, 1:51:42 PM12/9/15
to php...@googlegroups.com
As representative who failed to vote in time I would like to share why I ultimately didn’t. It isn’t a heroes story or epic drama, that might have been more acceptable as a reason probably. In the end I failed to review in time because of my perceived limited expertise on this front, meaning I could not provide an informed vote on this topic and I was unable to become informed enough in time. In addition to this I failed to engage with my community in time to gauge their opinion.

My apologies for this


On 09 Dec 2015, at 01:41, Christopher Pitt <cgp...@gmail.com> wrote:

Perhaps due to the amount of backlash the current form was receiving...

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
signature.asc
Reply all
Reply to author
Forward
0 new messages