Calling Developers!
We are reenergizing our code contribution process! Learn More

What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Good morning, people! I would like to share a post about *variadic function*, *argument unpacking* &

Options
Chemaclass
Chemaclass Tech Lead Spryker Solution Partner Posts: 213 🧑🏻‍🚀 - Cadet
edited November 2020 in Knowledge Sharing

Good morning, people!
I would like to share a post about variadic functionargument unpacking & function variable argument list.

Typed arrays in PHP 🐘 (reading time: 3 min)

Medium: https://chemaclass.medium.com/typed-arrays-in-php-11ce6d674d9f
DevTo: https://dev.to/chemaclass/typed-arrays-in-php-hoo

Comments

  • UKHD8KTMF
    UKHD8KTMF Posts: 393 🧑🏻‍🚀 - Cadet
    Options

    You can achieve type safety with collections like:

    interface CustomerCollectionInterface extends ArrayAccess, IteratorAggregate
    {
        public function addCustomer(Customer $customer);
    
        public function offsetGet($offset): Customer;
    }
    
  • UKHD8KTMF
    UKHD8KTMF Posts: 393 🧑🏻‍🚀 - Cadet
    Options

    I find this approach much cleaner.

  • Chemaclass
    Chemaclass Tech Lead Spryker Solution Partner Posts: 213 🧑🏻‍🚀 - Cadet
    Options

    Well, yeah, it depends if the collection itself has some special logic on its own (then it makes sense to create a class for it), otherwise, maybe it would be a bit overkill to create a new collection class for each collection type, don't you think?

  • UKHD8KTMF
    UKHD8KTMF Posts: 393 🧑🏻‍🚀 - Cadet
    Options

    I strongly disagree, but that is a matter of opinion. I prefer that things fail immediately, when I want to add wrong item somewhere and not when I want to consume the value.

  • UKHD8KTMF
    UKHD8KTMF Posts: 393 🧑🏻‍🚀 - Cadet
    Options

    I miss typed lists (collections) as a language feature though. So both approaches are a workaround.