As there doesn't seem to be a clear consensus amongst those who have
posted so far, Matthew and I decided to just put it to a poll.
This poll is open to everyone, but we are particularly looking for
voting reps to give feedback. It should take less than 60 seconds to
do, so please spare a minute to give feedback:
https://goo.gl/forms/fR0VcqhOfMO2mPQ12
I'll leave it open for a week or so (probably a little more since 1 week
will be during DrupalCon) and we'll see where we stand before making a
final decision.
--Larry Garfield
On 09/19/2016 01:08 AM, Marc Alexander wrote:
Hi,
I do not think that calling it "collector" does serve it right. A
collector is something that collects and therefore creates a
collection. I don't see this applying to the LinkCollectionInterface.
A collection however is a group of object which do not necessarily
need to be of the same type.
I would recommend to stay with calling it a collection as that
describes its purpose pretty well.
-- Marc
On Wednesday, September 14, 2016 at 7:21:01 PM UTC+2, Andreas Heigl
wrote:
Hi All
Am Montag, 12. September 2016 23:22:12 UTC+2 schrieb Larry Garfield:
On 09/12/2016 09:40 AM, Matthew Weier O'Phinney wrote:
> On Mon, Sep 12, 2016 at 1:04 AM, Andreas Heigl
<and...@heigl.org> wrote:
>> I have two things I'd like to mention regarding PSR-13:
>>
>> First, for me personally it makes less sense to have a
>> LinkCollectionInterface that doesn't act like I'D expect a
Collection to
>> work. For me a collection is a set of similar items I can
then iterate over.
>> Whether that's a collection of links, headers, or teapots
doesn't matter. So
>> I'd expect an object implementing a CollectionInterface to
be iterable and
>> to already contain the items in question. The current
implementation of the
>> LinkCollectionInterface though looks more like a
CollectorInterface.
>> Something that collects linkInterfaces and can return a
>> LinkCollectionInterface. I know it's only a slight
difference in wording,
>> but for me it would make a difference in understanding what
happens.
> Thanks for this feedback! Until recently, I didn't typically
think of
> collections as requiring iteration, but considering that the
> terminology has definitely been moving in that direction the
last few
> years (google for "first-class collection", and you'll see
fairly
> consistent definitions!), it may make sense to change the
name. I'll
> discuss with Larry today.
Matthew and I brainstormed a bit more. The only other word we
could
come up with that we didn't hate even more than "Collection" was
"Catalog". Which would then result in:
class Whatever implements LinkCatalogInterface {
}
How do people feel about that? Is it more/less descriptive than
Collection? More/less pompous sounding? :-) A few seconds of
Googling
didn't find any existing CS definition of "catalog" that would
conflict
with it, FWIW.
We went over the name before and Collection was the best we
came up
with. So I think it's Collection or Catalog at the end of the
day.
I'm always trying to find analogies in the real word for things I
want to name.
For me a catalog is a set of things I am able to get from someone
providing that catalog. It never contains actual concrete objects
only references to them. The only thing they need to have in
common is that they can be obtained from the same source. And I'm
usually not ordering everything the catalog has to offer, just a
small subset. Trying to match that to the Links I'm stumbling very
soon.
A Collection on the other hand is a set of concrete objects that
someone has gathered. And they all have something in common. They
are either stamps or teapots or beermats or whatever that someone
has gathered. But they are all of the same kind. And the person
gathering these items can without problem gather different items.
Like a person can collect postcards as well as guitars. Ask that
person to show you the postcard-collection (besides from being a
happier person) they won't show you a single guitar.
So taking that analogy to the links, it's possible to have an
object containing links as well as headers. It's a Collector of
links *and* headers. To know whether you can get links from the
object you'll need a way to tell whether that object collects
them. That could be a LinkCollectorInterface that defines a method
*getLinkCollection*. Know when I have a concrete implementation of
an Object I can check whether it's a LinkCollector and if so I
know that I can ask for a LinkCollection. And that LinkCollection
can be anything from a complex iterable LinkCollectionObject
implementing a LinkCollectionInterface to an array of
LinkInterface-implementing objects. The main think is that I get
something back that contains LinkInterfaces.
So I would opt for renaming the LinkCollectionInterface to
LinkCollectorInterface and would refrain from calling it a Cataloge.
But that's just my 0,02€
Cheers
Andreas
--Larry Garfield
--
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/9472b271-fbe9-439f-8a38-17023bd53aa2%40googlegroups.com
<https://groups.google.com/d/msgid/php-fig/9472b271-fbe9-439f-8a38-17023bd53aa2%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/875a9f23-e4cd-bce4-a404-30f3c570558d%40garfieldtech.com.
For more options, visit https://groups.google.com/d/optout.