我有3-4个应用程序运行相同的蛋糕库,每个应用程序都有自己的控制器,模型和视图。
我最近发现模型中有相当多的方法在项目之间重叠,我想知道是否可以让应用程序模型(而不是app_model.php)来扩展蛋糕文件中的模型
例如:
app1
controllers
models
model_1.php
model_2.php
views
app2
controllers
models
model_1.php
model_3.php
views
cake
controllers
models
model_1.php
views我希望这是有意义的
发布于 2011-09-02 13:07:21
您实际上不应该为了从另一个CakePHP应用程序读取代码而修改您的CakePHP应用程序。您的所有应用程序代码都应该封装在该应用程序中。
如果您发现自己在多个应用程序中拥有相同的代码,这听起来像是将代码提取到CakePHP插件中的完美候选者!
查看CakePHP documentation for creating plugins。
一个插件将有它自己的控制器,模型,视图,现在(从CakePHP 1.3开始)它有自己的资产(CSS,Js,图片,等等)。您可以将插件添加到您的应用程序中,并修改您的路由和链接,以便最终用户不会注意到您的应用程序中的差异。
Router::connect('/your/routes/*', array('plugin' => 'your_plugin', 'controller' => 'controller_in_plugin'));
echo $this->Html->link('Your Link', array('plugin' => 'your_plugin', 'controller' => 'controller_in_plugin', 'action' => 'action_in_plugins_controller'));发布于 2010-12-22 00:36:37
如果你使用的是CakePHP 1.3,那么你可以修改你的bootstrap.php文件:
App::build(array(
...
'models' => array('/var/www/app1/models/', '/var/www/cake/models/'),
...
));但我认为你必须将它们重命名为不同的名称,即你不能在两个地方都有model_1.php。但是你可以在cake/models文件夹中有vehicle.php,在cars_app/models文件夹中有car.php,在bikes_app/models文件夹中有bike.php,这些模型扩展了车辆模型。
我还没有测试过,但是试一试吧!
发布于 2010-12-22 02:15:40
您可以尝试对常见模型使用符号链接。这样,即使目录中有多个文件,它们也都共享相同的根实现。
https://stackoverflow.com/questions/4501491
复制相似问题