What are the best practices for passing objects between functions in PHP without cluttering parameter lists?

When passing multiple objects between functions in PHP, it can quickly clutter the parameter lists and make the code hard to read and maintain. To solve this issue, you can create a dedicated object that encapsulates all the necessary objects and pass this single object between functions instead.

// Define a class to encapsulate the necessary objects
class ObjectContainer {
    public $obj1;
    public $obj2;
    
    public function __construct($obj1, $obj2) {
        $this->obj1 = $obj1;
        $this->obj2 = $obj2;
    }
}

// Function that accepts the ObjectContainer
function myFunction(ObjectContainer $container) {
    $obj1 = $container->obj1;
    $obj2 = $container->obj2;
    
    // Do something with $obj1 and $obj2
}

// Create instances of the objects
$obj1 = new Object1();
$obj2 = new Object2();

// Create an instance of ObjectContainer and pass it to the function
$container = new ObjectContainer($obj1, $obj2);
myFunction($container);