Let’s assume that each customer has some of the custom work
app
— controllers
---------testcontroller,php
— models
---------mymodel.php
—custom
-----customer1
--------- controllers
---------------testcontroller,php (extends controllers/testcontroller.php)
--------- models
---------------mymodel.phpp (extends models/mymodels.php)
-----customer2
--------- controllers
---------------anothercontroller,php (extends controllers/anothercontroller.php)
--------- models
---------------mymodel.phpp (extends models/mymodels.php)
What you can do, (based on the customer) is load the correct class via reflection.
$refClass = new \ReflectionClass(‘app\custom\customer1\testcontroller’);
and go from there.
(if the class is not found, then load the normal one)