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

Hello again! Simple question (hopefully) just for understanding: For the dependency providers … woul

UPWG9AYH2
UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

Hello again! Simple question (hopefully) just for understanding: For the dependency providers … would there be a downside passing the Container $container variable to each adding-function as „by reference”? I think i already heard a good reason against, but i really can’t remember … Thanks a lot 🙂

Comments

  • it’s a class, so passed by reference by default

  • you mean just changing instead of returning and overriding in the calling method, right?

  • what is it you want to achieve?

  • UPWG9AYH2
    UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

    if mean instead of

    $container = $this->addStore($container);

    do
    $this->addStore($container);
    ….

  • UPWG9AYH2
    UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

    and in the function omit the return value

  • UPWG9AYH2
    UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

    protected function addStore(Container $container)
    {
    $container[static::STORE] = function (Container $container) {
    return Store::getInstance();
    };
    }

    instead of

    protected function addStore(Container $container)
    {
        $container[static::STORE] = function (Container $container) {
            return Store::getInstance();
        };
    
        *return $container;*
    }
    
  • yes, i understand

  • except for the motivation 🙂

  • UPWG9AYH2
    UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

    I got the question from a colleague regarding this and i want to give him a plausbile answer 🙂 … so he asked why not using the “short” way instead of doing unnecessary assertions all the time …

  • UKU1E0ENB
    UKU1E0ENB Posts: 34 🧑🏻‍🚀 - Cadet

    Hi Ingo, both ways work but we decided to always use explicit input and output parameters for methods. In case a parameter is modified inside of a method but not returned then the signature of the method would be misleading. That’s called an inout parameter and I would call it a bad practice.