In my new job, they use (don't ask me why) a custom framework that is based on MVC architecture. Myself, I have a lot of experience with Symfony2 that is kinda an MVC framework. This framework does not use any abstraction for the data persistence layer. So a typical model class would be like this:
class User extends Model {
protected $iduser;
protected $email;
protected $password;
// some getters, setters here
public static getAllUsers(){
// a select query here
return $all_users;
}
Now I think this model is using Object Relational Mapping (ORM), am I right? The problem is that it does not use any of the most popular patterns like Repository pattern or DAO for the communication with the database and all CRUD operations have to be implemented in each model. My question is if this logic is ok or it is not acceptable not to use any abstraction layer between the Model and the Database and why.