Search code examples
cakephpmodelextend

Howto extend a plugin model class in CakePHP with "clean" classnames?


I'm currently learning CakePHP. I use CakePHP 2.2.3. I have succesfully "installed" a user management plugin. This plugin has a model class "User" and uses table "users". Now, I'd like to extend this User model in order to e.g. relate my own models to it, e.g. Posts.

I managed to to this with the following code:

App::import('Model', 'Usermgmt.User');

class MyUser extends User {
    var $hasMany = array('Post');
    var $useTable = 'users';
}

This works.

However, I don't like the fact that I have to call my Model class something like "MyUser". It makes everything very ugly and, maybe - theoretically - sometime I want to install another plugin that uses classname "MyUser". Is it somehow possible to use "clean" class names and prevent possible name collisions in the future..?


Solution

  • No, that's not possible because CakePHP doesn't yet support namespaces. According to the roadmap support for namespaces is planned for CakePHP 3.