Is it recommended to extend a custom database wrapper to execute queries across multiple tables, even if it goes against the MVC concept in PHP?

Extending a custom database wrapper to execute queries across multiple tables may go against the MVC (Model-View-Controller) concept in PHP, as it can lead to tightly coupling database logic with other parts of the application. Instead, it is recommended to keep database operations within the model layer and use relationships or joins to query across multiple tables. This helps maintain separation of concerns and makes the code more maintainable.

// Example of querying across multiple tables using relationships in the model layer

class User {
    public function getPosts() {
        // Assuming there is a relationship between User and Post models
        return $this->hasMany('Post');
    }
}

class Post {
    public function getUser() {
        // Assuming there is a relationship between Post and User models
        return $this->belongsTo('User');
    }
}

// Usage example
$user = new User();
$posts = $user->getPosts();
foreach ($posts as $post) {
    echo $post->title;
    echo $post->getUser()->name;
}