2010-05-22 2 views
2

На данный момент я по-прежнему шаткий по классам, поэтому я не хочу использовать какие-либо классы для своего сайта. Я все еще занимаюсь занятиями.Как я могу использовать идеи MVC без использования классов?

Но как я могу реализовать идею MVC без классов?

Будет ли это работать для MVC?

index.php (вид)

index_controller.php

index_model.php

Is this right for what a MVC should be? 
View: show html, css, forms 
Controller: get $_POST from forms and any data from the user, get info from db 
Model: do all the functions, insert/delete in db, etc 

В основном отделить HTML/CSS для зрения, все данные для сбора контроллер и логику для модели. И просто соедините их все с помощью require_once.

+3

Да, вы можете это сделать, см реализации Rasmus по минимальному MVC - http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html. Он использовал классы для DB и Model, но вы можете заменить их функциями. * Но ** почему ** вы не хотите использовать классы? * – Anurag

+0

Я по-прежнему новичок в занятиях, поэтому я не хочу использовать его без предварительной практики с меньшими проектами. :) – jpjp

ответ

1

Контроллер: Ваш index.php, принимающий и направляющий запрос. Это, безусловно, может быть «бесклассовым» сценарием. Он будет действовать как контроллер, так и «фронт-контроллер».

View (s): коллекция сценариев презентации, специфический скрипт, включенный вашим контроллером. По существу «получение» данных из области переменных контроллера.

Модель (ы): Набор функций, обеспечивающих доступ к вашим данным. Контроллер определяет, что включить для запроса.

Конечно, это можно сделать , но вы теряете много, не используя классы (ООП). Вот пример того, что может быть у контроллера . Ничего удивительного, просто идея. Отображение контроллера должно также пролить свет на модель/представление.

<?php 
    $action = getAction(); //parse the request to find the action 
    switch($action){ 
    case 'list': 
     include('models/todolist.php'); //include the model 
     $items = todolistGetItems(); //get the items using included function 
     include('views/todolist/list.php'); //include the view 
     break; 
    case 'add': 
     if(!empty($_POST['new'])){ 
     include('models/todolist.php'); //include the model 
     todolistAddItem($_POST); //add the item 
     $items = todolistGetItems(); //get the items using included function 
     include('views/todolist/list.php'); //include the view 
     } else { 
     include('views/todolist/add.php'); //include the view 
     } 
    } 
+0

Добавлен пример контроллера. –

Смежные вопросы