Is it possible in CakePHP to organise controllers (and models) in subfolders? Thanks.
问题:
回答1:
Yes you can, but it is deprecated. See the discussion here. The last post on this page describes how to do it in the bootstrap.
回答2:
It's not deprecated at all. You can accomplish this using the App:build and point to your subfolders. For example, if you want to put all of your Twitter models in Model/Twitter to keep your code organized, you can add the following to the bootstrap.php
:
App::build(array(
'Model' => array(APP . 'Model' . DS . 'Twitter' . DS),
));
Now, any model file you put in Model/Twitter will be available when you call it.
See more here: http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::build
回答3:
For those of you looking for a CakePhp3 version of this answer here is a link to the routing documentation. Use router prefixing that matches your controller sub-namespaces / directory structure.
http://book.cakephp.org/3.0/en/development/routing.html#prefix-routing
回答4:
In CakePHP 3 you can define additional class paths in your composer.json (see http://book.cakephp.org/3.0/en/development/configuration.html#additional-class-paths)
Btw if you want to organize your template files in subfolders you have to add their paths in your app.php at App.paths
http://book.cakephp.org/3.0/en/development/configuration.html#general-configuration
Just in case someone else is searching for this piece of information... ;)