За последние 24 часа нас посетили 18155 программистов и 1606 роботов. Сейчас ищут 919 программистов ...

Вопросы по MVC

Тема в разделе "Прочие вопросы по PHP", создана пользователем Y[i]onex, 10 дек 2012.

  1. Y[i]onex

    Y[i]onex Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте уважаемые php программисты. Хотелось бы задать вам несколько вопросов про паттерн mvc.
    Саму структуру я понимаю т.е. что такое модель, контроллер, вид и как они взаимодействуют. Но вопрос в велосипеде. Просто ради практики решил написать эту структуру, но столкнулся с проблемами. Во первых я незнаю как взаимодействуют файлы ядра. Я понимаю что у этой структуры одна точка входа. А из точки входа вызываются классы ядра. Так вот вопрос: с какого класса начинается выполнение скрипта. И если можно объясните можно ли использовать front controller как фабрику для создания объктов. И второй вопрос насчёт SPL как с помощью неё автоматически подключать файлы и где надо её использовать. На данный момент у меня написан только файл входа=)

    Заранее спасибо!!!
     
  2. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    а как сделано в других проектах? ;)
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Во первых MVC не догма. Есть мнение, что для веба эта концепция вообще плохо применима.
    Во вторых лучше начать с изучения готовых устоявшихся фреймворков. Я бы посоветовал CodeIgniter, т.к. он декларируется как эмвиси и у него отличная документация.
     
  4. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    Yii более прост в освоении
     
  5. vayas

    vayas Активный пользователь

    С нами с:
    13 дек 2012
    Сообщения:
    167
    Симпатии:
    9
    Адрес:
    Пермь
    Код (Text):
    1.  
    2. class AutoLoader
    3. {
    4.     public function Register()
    5.     {
    6.         spl_autoload_register(array($this, 'AutoLoad'));
    7.     }
    8.     public function AutoLoad($className)
    9.     {
    10.         $controllerPath = $_SERVER['DOCUMENT_ROOT'] . '/' . str_replace('\\', '/', $className) . '.php';       
    11.         (file_exists($controllerPath)) ? include_once($controllerPath) : Route::ErrorPage404();
    12.         return;
    13.     }
    14. }
    15. $autoLoader = new AutoLoader();
    16. $autoLoader->Register();
    Типо такого, ну раз это автозагрузчик, то понятное в дело в самом начале
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Как правило в веб-приложении кроме MVC есть еще несколько логических элементов :) Часто вводится понятие роутера - это тот код, что определит на основе входных данных - что вызывать, какой метод контроллера. Ну и, конечно, должен быть какой-то инициализационный код. Какой-то класс приложения, который как раз и запускается из вашего index.php а дальше уже что-то делает... например, вызывает роутер.
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Сразу хочу дать вам совет - никогда не применяйте паттерны и вобще ООП, если не уверены что они вам нужны.
    Разумеется, это не касается теоретической стороны вопроса.
     
  8. Citius

    Citius Активный пользователь

    С нами с:
    10 апр 2008
    Сообщения:
    70
    Симпатии:
    0
    @Yonex
    Почитал комменты ерунду понаписали вцелом, а по делу не ответили, начни с простого, модель - работа с данными, контроллер - работа с моделями и отображениями (вьюхами), отображение (вьюхи) работа с выводом :).
    При этом, совсем не обязательно это будет реализованно в ООП. Но ООП поможет тебе содержать код в чистоте, но если ты не понял до конца зачем придуманно было ООП, то порядка не будет и вернись к функиональному программированию, разберись, вникни и пойми что ООП все же прикольней, перепиши в ООП стиле.
    А по делу, фронтконтроллер незачем юзать как фабрику, все нужное для работы системы надо делать ОДИН раз инициализацию всех зависимостей ресурсов и прочей ереси, при этом должно быть закешировано, собранно и пр. Не понятно что за точка доступа. Если это точка обработки запросов, то да речь о контроллере, если речь в целом о запуске приложения, то начинать надо не о контроллере, а об приложениии в целом... а вообще исходя из топика, советую ознакомиться с очень полезной книженцией, Мэтта Зандстры "PHP. Объекты, шаблоны и методики программирования", но опять же ПРИ УСЛОВИИ что вы знаете PHP не менее чем на 4ку по 5ти бальной шкале.

    P.S.: Начет шаблонов, вещь как ты потом увидишь абстрактная. Пишешь код сам по себе - тебе они, наверное и не нужны будут, просто потом увидишь что многие из них ты и так юзал, просто не знал что это как то называется, многие действительно окажуться интересным решением, которое ты просто не догадался или не смог релизовать. Самое главное при погружении в шаблоны это путь познания, их надо изучать только тогда когда уже есть опыт работы с технологией и ООП вцелом, а изучать технологии и ООП по шаблонам, очень не верное решение многое будешь использовать не понимая зачем тебе это использовать. И еще один большой плюс в шаблонах, - это удобное общение в команде! Ты одним термино коллеге сразу объясняешь модуль кода, а не как это у многих, "ну это та х.ня, которой дергаешь вон ту зал..пу" сорри за некрасивую фразу, зато думаю доходчиво получилос.