когда использовать MVC на PHP?

Хорошо я думаю, что продвигаю мой сам к далекому здесь, я - createing проект в моем собственном MVC, даже я не знаю то, что MVS самостоятельно,

<?php    

class init
    {
        function __construct()
        {
            $this->enviroment();
            $this->start();
        }

        function enviroment()
        {
            /* Required Classes */  
            require_once( ROOTPATH . BOOTSTRAP . REDENGINE . '/class.debug.php');
            require_once( ROOTPATH . BOOTSTRAP . REDENGINE . '/class.theme.php');
            require_once( ROOTPATH . BOOTSTRAP . REDENGINE . '/class.url.php');
            require_once( ROOTPATH . BOOTSTRAP . REDENGINE . '/language/class.lang.php');
            require_once( ROOTPATH . BOOTSTRAP . REDENGINE . '/class.sessions.php');
        }
        function start()
        {   
            /* Start Classes */
            $uSys = new Urlsystem;
            $fragments = $uSys->getFragments();
            $tSys = new ThemeSystem;
            $lSys = new LanguageSystem;
            $sSys = new Sessions;   

            /* defineing APPVIEWS & APPCONTROLLER */        
            define( 'APPVIEWS', '/appviews' );
            define( 'APPCONTROLLER', '/appcontroller' );

            if ( empty($fragments) )
            {
                require_once( ROOTPATH . APPCONTROLLER . '/app.home.php'); /* default app controller page */
                require_once( ROOTPATH . APPVIEWS . '/view.home.php'); /* default app views page */
            }

            if ( !empty($fragments) )
            {
                // Start ENGINE
                if ( !file_exists(ROOTPATH . APPCONTROLLER . '/app' . $fragments . '.php') &&
                     !file_exists(ROOTPATH . APPVIEWS . '/view' . $fragments. '.php')
                ) {

                            if ( file_exists(ROOTPATH . APPCONTROLLER . '/app.404.php') &&
                                 file_exists(ROOTPATH . APPVIEWS . '/view.404.php')
                             ) {
                                require ROOTPATH . APPCONTROLLER . '/app.404.php';
                                require ROOTPATH . APPVIEWS . '/view.404.php';
                            }
                            else {
                                echo "NO 404 APP || VIEW";
                            }
                }           
                if ( file_exists(ROOTPATH . APPCONTROLLER . '/app' .  $fragments . '.php') ) 
                {
                    require ROOTPATH . APPCONTROLLER . '/app' . $fragments . '.php'; // load application

                    if ( file_exists(ROOTPATH . APPVIEWS . '/view' .  $fragments . '.php') ) {
                        require ROOTPATH . APPVIEWS . '/view' .  $fragments . '.php';// load view
                    } 
                }
                // End ENGINE
            }       
        }
    } ?>

Хорошо, поскольку Вы видите мой фронтальный контроллер, таким образом, я знаю, что он перестал работать, я просто замечаю свой сбой после того, как я почти заканчиваю свой проект, особенно когда я должен сделать www.someurl.com/?$getuser или www.someurl.com/myname или пользователя.

Так или иначе мой вопрос состоит в том, когда нам действительно нужен MVC для PHP?

Я смотрю на Facebook и т.д.

Они все еще используют ?this=blabla доберитесь так, они не MVC, который является правильным? Так или иначе я все еще смущен, как Facebook делает www.facebook.com/myname без него. (htaccess?)

Если они не используют MVC затем, когда нам действительно нужен он?

Примечание:

Я читал, многие распараллеливают о том, когда использование, MVC, но я не нашел один в моей проблеме, если существует, оставляют комментарий, таким образом, я могу читать :)

Большое спасибо.

8
задан hakre 7 June 2012 в 14:13
поделиться

8 ответов

Мне кажется, вы путаете MVC и наличие RESTful URL схемы (http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services).

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

.
5
ответ дан 5 December 2019 в 11:21
поделиться

MVC - это архитектурный шаблон, ориентированный на разделение задач; URL-адреса не имеют к этому никакого отношения.

URL-адреса обрабатываются сервером. Если вы используете Apache, настройте mod_rewrite.

При этом, возможно, вы не захотите изобретать велосипед, но посмотрите на доступные варианты: существует множество PHP-фреймворков, ориентированных на MVC. Найдите тот, который вам нравится и в котором вы можете продуктивно работать, и используйте его.

2
ответ дан 5 December 2019 в 11:21
поделиться

Мне кажется, вы путаете MVC с параметрами запроса. Эти два понятия не обязательно связаны, хотя верно то, что более популярные PHP MVC-фреймворки маскируют параметры с помощью mod_rewrite или аналогичного метода.

MVC - это просто способ отделить логику представления от бизнес-логики. Подумайте об этом так: если у вас есть сайт, использующий MVC, вы можете легко создать версию для мобильных телефонов, просто меняя представления в зависимости от браузера, логика сайта не должна меняться, только HTML, который отправляется клиенту.

2
ответ дан 5 December 2019 в 11:21
поделиться

Похоже, в вашем вопросе смешиваются две разные темы. Контроллер представления модели (MVC) и красивые URL-адреса.

Контроллер представления модели - это парадигма дизайна, которая позволяет вам разделять вашу логику (модель), ваши шаблоны (представления) и управляющий ввод / вывод (контроллер).

Симпатичные URL-адреса , с другой стороны, позволяют перенаправлять URL-адреса на основе правил формата ( обычно правила .htaccess ).

Модель-Представление-Контроллер - информация о парадигме проектирования.

Учебник по красивым URL - реализация использования Apache mod_rewrite.

mod_rewrite - информация о том, что такое движок перезаписи.

2
ответ дан 5 December 2019 в 11:21
поделиться

вы можете подумать о том, чтобы начать с использования одного из множества различных фреймворков MVC, таких как CodeIgniter или cakePHP . Эти структуры были разработаны многими людьми и усовершенствованы в течение определенного периода времени. В MVC нет необходимости, но как только шаблон установлен, создание веб-приложений происходит очень быстро.

1
ответ дан 5 December 2019 в 11:21
поделиться

Когда использовать... Постоянно, это хорошая практика.

Лично мой выбор: Symphone и Doctrine могут облегчить написание больших приложений командой. Но начинал с CodeIgniter.

1
ответ дан 5 December 2019 в 11:21
поделиться

Вы действительно усложняете себе жизнь, пытаясь написать свой собственный mvc. (Вы не делаете это, манипулируя схемой URL). Хотя написать его самостоятельно - это хороший образовательный опыт, вы не получите такого уровня качества и преимуществ шаблона MVC, изобретая колесо.

Напишите свое приложение на symfony, zend, codeigniter cake или на любом из хороших фреймворков MVC с открытым исходным кодом. Когда вы почувствуете, как это должно работать, вам следует создать свое собственное для развлечения.

Эти фреймворки существуют для того, чтобы ваши проекты быстрее кодировались и были более удобными в обслуживании.

0
ответ дан 5 December 2019 в 11:21
поделиться

Сохранение кода, HTML и данных в разных папках - это самый простой способ структурирования приложения - и это основная причина для внедрения MVC: организация.

Другие паттерны проектирования, присутствующие в большинстве фреймворков, дополняют MVC и способствуют повторному использованию кода, быстрой разработке и т.д. Но последнее можно сделать и без MVC - все, что для этого нужно, это библиотека кода! Большинство фреймворков используют паттерн проектирования MVC, но MVC = фреймворк.

Некоторые фреймворки требуют, чтобы вы настроили Apache (Lighty, Nginx и т.д.), чтобы сделать его расширением фреймворка. Красивые URL - это просто способ представления входных данных (представление), которые потребляются контроллером, чтобы последний мог направить их в соответствующий обработчик. Если рассматривать .htaccess в этом свете, то для таких фреймворков он является неотъемлемой частью MVC.

Прежде чем погрузиться в проект, следует провести небольшое исследование. Большинство фреймворков используют запутанный подход к MVC, что привело многих в замешательство. Fat-Free Framework использует более прямой и простой путь.

2
ответ дан 5 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: