See what your friends write:
Singleton
Pagination
Oraedoop
adminer
M-V data flow. SEES in picture means : C assigns variables from user request in URL (from URL query) telling V what user wants and includes V (not showed in picture). UPDATES in picture means : V pulls data from M according C variables. MANIPULATES in picture means : V (user request) may call C method for some state changes ordered by user (USES in picture) in URL ee table row updates like approve user comment (see msg module). User`s events are so handled in Controller class. V script may contain class but I do not see need for view classes.
View gets (singleton) or instantiates model object and pulls data from M. If we have user`s interactions (events) eg filter displayed rows (pagination is sort of filtering), than M-V data flow is only possible solution.
M-C-V data flow - controller instantiates M and pushes M data to V. I do not see advantages compared to M-V data flow. Disadvantage are : for pagination M-V data flow is only possible solution, C is fat in large modules (lot of code). C in my msg (blog) module has lot of code, but code is very simple.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus provident...