Controller adalah huruf ‘C’ pada singkatan dari MVC. Setelah routing telah dilakukan dan controller yang tepat telah ditemukan, maka controller itu akan dipanggil. Controller bertugas untuk memahami permintaan (request) data, memilih MODEL dengan tepat untuk dipanggil, dan memberikan VIEW yang tepat. Controller bertindak sebagai pemikir di antara MODEL dan VIEW.
Pada umumnya, controller digunakan untuk mengatur (manager)
logika pada sebuah MODEL. Contohnya, jika ingin membangun sebuah web untuk
sebuah online bakery,kita mungkin memiliki recipeController dan IngredientsController yang mengatur resep dan komposisi. Hal ini berarti controller
digunakan untuk lebih dari satu (1) MODEL.
Controller menyediakan beberapa methods yang disebut sebagai “actions”.
Actions adalah methods dalam controller yang menangani request. Secara default
semua public methods dalam sebuah controller adalah sebuah actions, dan dapat
diakses dengan url. Actions bertugas memahami request dan membuat responnya. Biasanya
respon berupa form yang diberikan view, tetapi ada banyak cara untuk membuat
respon dengan baik.