I have a large PHP project that I started a decade ago, and out of inertia, it's very functional in style. I've been using OOP for new features, and it's been making development a lot easier.
But I've been frequently running into a dilemma. Let's take a calendar as an example. Using objects makes total sense to model the database concept of a calendar category, a time range, the display model, etc. But when it comes to grabbing actual events out of the database, it feels more natural to me to just use the array of hashes that come out of the MySQL library. The overhead of creating hundreds, possibly thousands, of objects to model the results of a select query seems like overkill. It'd be nice to have them as objects, but at what cost?
What are the best PHP OOP practices for selecting potentially large numbers of rows from a database?