2013-09-25 34 views
0

我在CakePHP中有几个项目,并希望将通用代码移入插件并为这些插件使用单独的GIT存储库。CakePHP,创建可扩展的插件

例如,我创建了一个UserManager插件,其中包含用于用户,组和权限的MVC。

我的问题是:不同的项目有不同的(额外的)关系到插件模型。例如,另外一个项目应该具有“用户所属位置”。

我现在很困惑如何正确设置它。本手册讲述如何覆盖插件视图,但不知道如何使用模型和控制器完成。

这怎么能以干净的方式完成?

+0

请不要忘记提及您的确切CakePHP版本。 – ndm

回答

0

您可以简单地扩展插件类并覆盖/添加必要的关联,就像您可能已使用AppModel分别为UserManagerAppModel一样。

http://book.cakephp.org/2.0/en/plugins.html#plugin-models

这里有一个基本的例子(假设在插件的用户类被命名为User):

App::uses('User', 'UserManager.Model');  

class AppUser extends User 
{ 
    public $belongsTo = array('Location'); 
} 
万一

或者create the associations dynamically有一些需要保持现有的:

class AppUser extends User 
{ 
    public function __construct($id = false, $table = null, $ds = null) 
    { 
     parent::__construct($id, $table, $ds); 

     $this->bindModel(array('belongsTo' => array('Location'))); 
    } 
}