There is little difference between them; The controller is just a child of the CController class.
In test applications, it is used to provide additional variables to all controllers derived from the controller. For example, it is used to set $breadcrumbs , $layout and the $variables menu for the layout view file.
It is good practice to extend the YII base classes (starting with the "C" character) in your project - the base classes will not be affected by YII updates, and the code will be more decoupled.
source share