I am kind of new to MVC, I've read lots of tutorials online but each keep using different approaches so I decided to create mine. Below is what my code looks like.index$url_segments = explode('/', $url);$controller = !empty($url_segments[0]) ? $url_segments[0] : 'home';array_shift($url_segments); // removes the controller name from array$action = isset($url_segments[0]) && !empty($url_segments[0]) ? $url_segments[0] : 'index';array_shift($url_segments); // removes the action name from array$controller = ucfirst($controller);$controller = new $controller($url_segments);$controller->$action();controllerclass Controller{   protected $model;   protected $view;   public function __construct() {        $this->view = new View();   }}modelclass Model {    private $connection;    public function __construct() {        require_once DOCUMENT_ROOT . '/resources/connection.php';        $db = new DatabaseFactory();        $this->connection = $db->getFactory()->getConnection('localhost', 'db_un', 'db_pw', 'db_nm');    }    public function getConnection() {        return $this->connection;    }}viewclass View{    private $file;    private $data;    public function output($file, $data = null, $content_only = false) {        if (isset($data) && is_array($data)) {            foreach ($data as $key=>$value) {                ${$key} = $data[$key];            }        }        ($content_only == false) && require_once TEMPLATES_PATH . '/header.php';        require_once $file;        ($content_only == false) && require_once TEMPLATES_PATH . '/footer.php';    }} For example if the url example/accounts/add/student was visited,controller would be 'accounts'action would be 'add'parameter ($url_segment[0]) would be 'student'Accounts classclass Accounts {    public function __construct() {        parent::__construct();    }    public function add() {        if (!isset($this->url_segments[0])) {             // url entered was: example.com/add so query type            // rendering view            $this->view->output(VIEW . 'query_account_type_to_add.php');        } else if (isset($this->url_segments[0]) && $this->url_segments[0] == 'student') {            // code to add student account            // rendering view            $this->view->output(VIEW . 'add_account.php');        }    }}Is this really MVC?Secondly,  my controller uses conditional statement based on parameters supplied after the controller and action part of the url to call different views, and I've read somewhere that having controller decide what view to load is bad and MVC would not have been structured properly. Are there any changes I'll need to be making to my code above?
PHP MVC framework
php;mvc;url routing