

A Controller or Class in MVC are both classes.
So…
Technically speaking.
It is possible to write all your functionality inside your controllers and completely ditch the classes folder.
But!
Controllers :
<?php namespace App\Http\Controllers; class MyCustomController extends Controller { }
Classes :
<?php namespace App\Classes\MyCustomClass; class ClassNameWhateverWhatever { }
Why Classes, what is the point?
—————————————————————–
Classes serve as containers for specific purposes.
For example.
You create a class for :
Car
—
And inside your class you write all your functionality.
A car can have specific functionality.
—
moveForward()
reverse()
brake()
switchOnLights()
—————————————————————–
Then, you reference your car class inside your contollers.
—
So something like
car->moveForward();
This design strategy makes your code extremely easy to re-use without having to re-write additional functionality. This is why we seperate everything into class and then we create another class call controllers and reference our classes inside the controller classes.