I would rather not pass each given property on a need to use basis, but just pass the whole object.
Why? The only reason to do this is laziness. It is making your code tightly coupled to whatever this "god" object is.
A controller has no interest in your connection settings for instance.
Objects should be passed their dependencies (and only their dependencies) at construction time.
Most frameworks handle this in an easy to manage manor by providing a configurable dependency injection container which allows you to configure how objects are to be created.