To reiterate what I said before: I am mostly suggesting a *lower bound*,
not *upper bound*. As PSR-6 states:
" A string of at least one character that uniquely identifies a cached
item. Implementing libraries MUST support keys consisting of the
characters A-Z, a-z, 0-9, _, and . in any order in UTF-8 encoding and a
length of up to 64 characters. Implementing libraries MAY support
additional characters and encodings or longer lengths, but must support
at least that minimum."
And then it also has 8 reserved characters. With the exception of the
reserved punctuation marks (which as I said are highly debatable for
PSR-11), it does not limit at all the keys that can be used; it's
exactly the opposite.
Vis, I am in no way suggesting the spec should say "UTF-32 characters
are illegal." I am saying the spec should say "if all you support is
basic ASCII, that's not enough."
I admit to being quite confused as to how this is a controversial
suggestion, and why people keep misinterpreting it as suggesting to
heavily restrict legal key values.
--Larry Garfield
On 11/11/2016 05:02 AM, Gary Hockin wrote:
This, as in the shared containers thread, is surely an implementation
detail rather than part of the standard? It would be a shame to limit
use of the standard by restricting which character sets are acceptable
based on nominal research by people in the western world (I mean this
in terms of character sets rather than social or political).
G
On Thursday, November 3, 2016 at 7:36:58 PM UTC, Matthew Weier
O'Phinney wrote:
On Thu, Nov 3, 2016 at 9:41 AM, Larry Garfield
<la...@garfieldtech.com <javascript:>> wrote:
I disagree for exactly that reason. :-)
If the goal is interoperability, then containers need to have
at least a common baseline of what they should allow. It's
essentially an additional layer of type checking beyond just
"string". That doesn't mean it has to specify a dot-delimited
format, or require/disallow /, or whatever. Just the legal
world of opaque strings.
I disagree. We didn't specify beyond the string type in PSR-7 for
any of the various properties that represented lookup tables
(attributes, server params, cookies, query params, etc); doing so
is essentially unnecessarily verbose, when "non-empty string"
essentially implies it's up to the user to determine what keys are
valid and what are not, with the baseline assumption that *any*
can be used.
I've played with a fair number of containers at this point, and,
honestly, I cannot think of *any* that had restrictions on
characters. In a worst case scenario, the lookup will fail. For
containers with sets of reserved characters, they can normalize
before lookup and/or injection.
Swapping containers is usually not something done lightly, and I
would expect that if an implementation has a more restrictive set
of characters allowed, that would be a consideration in the choice
when switching.
I believe PSR-6's definition allows any UTF-8 character, so
that would include pizza emoji. :-) However, if I'm trying to
connect two containers (for delegation), and one uses a pizza
emoji and the other only allows ASCII characters, then they're
not actually compatible. (Or, god forbid, one tries to use
Windows-1252 for some ungodly reason.) Or perhaps one is
limited to only 5 character strings for some reason (stored in
a database column)? Then passing in a longer string wouldn't
work.
PSR-6's requirement was simply "at leas a 64 character UTF-8
string, and these chars are reserved". If you don't want to
reserve the same/any characters that's fine, but at least a
character encoding and minimum legal length should be specified.
--Larry Garfield
On 11/03/2016 03:47 AM, David Négrier wrote:
I agree with Matthieu.
Specifying what legal characters are supported definitely
belongs to another PSR (the one where we put things into the
container). I'll propose a PR in
container-interop/service-provider
<https://github.com/container-interop/service-provider/> to
define precisely the allowed identifiers.
Unlike PSR-6, there is no "set" in this PSR, therefore no
need to standardize the acceptable identifiers. For PSR-11,
if the identifier passed is "🍕" (the pizza slice emoji) and
the container does not support emoji identifiers (what a
shame! :) ), the container should return a NotFoundException.
David.
Le mercredi 2 novembre 2016 22:49:33 UTC+1, Matthieu Napoli a
écrit :
Splitting of the main thread, quoting Larry:
> The spec should specify what legal characters are for
an entry
identifier, and what if any reserved characters there
are. It should
also specify minimum supported key length and character
sets, for
completeness. I recommend borrowing PSR-6's language
here, which I
believe addresses this area well. Whether it uses the
same reserved
character list or another one I don't feel strongly
about. I would not
consider this a Review-breaking change.
Why should we specify that? This is explicitly a
"non-goal" of PSR-11:
https://github.com/php-fig/fig-standards/blob/master/proposed/container-meta.md#32-non-goals
<https://github.com/php-fig/fig-standards/blob/master/proposed/container-meta.md#32-non-goals>
--
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 <javascript:>.
To post to this group, send email to php...@googlegroups.com
<javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/php-fig/5fa24b40-1b48-4c0e-907b-3fc88cc965dc%40googlegroups.com
<https://groups.google.com/d/msgid/php-fig/5fa24b40-1b48-4c0e-907b-3fc88cc965dc%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
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 <javascript:>.
To post to this group, send email to php...@googlegroups.com
<javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/php-fig/074d736b-f5b4-db27-765a-814de60387c7%40garfieldtech.com
<https://groups.google.com/d/msgid/php-fig/074d736b-f5b4-db27-765a-814de60387c7%40garfieldtech.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Matthew Weier O'Phinney
mweiero...@gmail.com <javascript:>
https://mwop.net/
--
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+unsubscr...@googlegroups.com
<mailto:php-fig+unsubscr...@googlegroups.com>.
To post to this group, send email to php-fig@googlegroups.com
<mailto:php-fig@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/php-fig/471a6868-f78a-40f7-a16b-212d64f6eaef%40googlegroups.com
<https://groups.google.com/d/msgid/php-fig/471a6868-f78a-40f7-a16b-212d64f6eaef%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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+unsubscr...@googlegroups.com.
To post to this group, send email to php-fig@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/php-fig/747f1318-fcad-54c5-15db-c056f500bbfa%40garfieldtech.com.
For more options, visit https://groups.google.com/d/optout.