I\'m running into a problem related to caching, plugins and duplicate model names in Cake 2.0. My application has several controllers containing only actions for public use (vie
Are there conflicting routes between the main app and the plugin? This sounds like you may need to create a route for your /posts and another for /admin/posts in your main app. This should override the routes from the plugin causing any conflict. Of course, clear your cache before trying the change.
//main app posts route
Router::connect(
'/posts',
array(
'controller' => 'Posts'
'action' => 'index'
)
);
//plugin posts route
Router::connect(
'/admin/posts',
array(
'controller' => 'Posts'
'action' => 'index',
'plugin' => 'CmsPlugin'
)
);
This turns out to be a known issue (which doesn't make it less annoying) and will only be fixed in a next major release, as per this Cake bug report.
PHP 5.2 doesn't have namespace support which is apparently needed for Cake to support duplicate classnames. PHP 5.3 has namespace support and Cake 3.0 will require that version.
May be it would be helpfull to override Cake' standard cache file names for Plugin to make Cache engine keep it separately. In main bootstrap file while loading plugin:
CakePlugin::loadAll(array('Plugin' => array('bootstrap' => true));
In Plugin direcrory /app/Plugin/Plugin/Config/bootstrap.php
<?php
Cache::config('_cake_core_', array(
'engine' => 'File',
'prefix' => 'cake_core_plugin_',
'path' => CACHE . 'persistent' . DS,
'serialize' => true,
'duration' => '+999 days',
));
?>