Hello,
I have a lot of Table Classes in my project.
I would like to organize the classes files by folder (Users, Stats, etc)
I have one class under src/Model/Table/Stats/BlockedTable.php
Blockquote
namespace App\Model\Table\Stats;
use Cake\ORM\Table;
class BlockedTable extends Table
{ …
If I do:
Blockquote TableRegistry::get(‘Blocked’);
Just getting an instance of
Blockquote
Cake\ORM\Table
I tried to add to the composer.json and then running composer dumpautoload
Blockquote
“App\Model\Table\Stats\”: “src/Model/Table/Stats”,
“App\”: “src”,
but still getting the same Cake\ORM\Table class
How should I do it?
Thanks,
neojoda
OK.
If I do:
TableRegistry::get('Blocked', ['className' => 'App\Model\Table\Stats\BlockedTable']);
Then it works.
Is there a way to configure CakePHP so I do not have to specify the className every time?
PD: Using className there is no need to modifiy the composer.json
You can group models/controllers/shells in plugins (using bake).
So you could create a plugin Supplies and to use it in the rest:
TableRegistry('Supplies.Products');
But! I don’t know (I didn’t try yet) is how to link from the plugin to the base App.
Lets say you got the table Contractors and is used in several tables/plugins, if you keep ContractorsTable in the main App in the plugin you can’t call “belongsTo”, so you should make a BasePlugins for the core models. Just my opinion