Использование объекта в методах других объектов

в этом случае я создаю объект sqlite3 в основном файле моего скрипта:

$db = new sqlite3('file.sqlite'); 

теперь мне нужно получить доступ к файлу sqlite в других других методах других классов. Но каков наилучший способ доступа к объекту?

Создавать каждый раз новый объект?

Использовать в методе глобальное?

 global $db; 

Или доставить его в качестве аргумента?

 $object = new exampleClass($db); 

Определенно:

 $object = new exampleClass($db); 

Или можно использовать класс registry для хранения объектов, а затем, при необходимости, извлекать их. Кто-то будет перекликаться, что это плохая практика, но хорошо:

 $object = Registry::get('db');