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..

Hey people! I got a tech-question for you 🙂 Why do you (:spryker:) have this p

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

Hey people! I got a tech-question for you 🙂
Why do you (:spryker:) have this pattern of returning the Container object in the DependencyProvider (and some other places as well) where you return the same object that you pass as argument WHEN actually objects are passed by reference (not by value)?

If we would talked about immutable objects where we are returning a new (immutable)instance, then it would make sense to return the new object (with the new state), but this is not the case in most of the places I've seen in Spryker (or should I say all of them so far...)  specially this, inside the DependencyProvider.

For me, personally, it seems more like unnecessary boiler-plate code. Or am I missing something here? Thanks!
(I attached two pictures: the current code from ProductDependencyProvider and my example)

Comments

  • Stanislav Matveyev
    Stanislav Matveyev Tech Lead @ Spryker Sprykee Posts: 211 🧑🏻‍🚀 - Cadet
    Options

    We have the convention: when you pass object to change it, we need to return the same object.

    So in this case it doesn't matter how the function is implemented, maybe it will do (new Class()) or clone $class, but we know that we expect the same TYPE of object.

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

    mmm I see. Then it's an internal :spryker: convention. All right. Thanks, @UKBTMFXMJ!

  • Stanislav Matveyev
    Stanislav Matveyev Tech Lead @ Spryker Sprykee Posts: 211 🧑🏻‍🚀 - Cadet
    Options

    so if you don't like it and don't want to follow this convention - you are absolutely free of choice ;)