Хорошо я думаю, что продвигаю мой сам к далекому здесь, я - 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, но я не нашел один в моей проблеме, если существует, оставляют комментарий, таким образом, я могу читать :)
Большое спасибо.
Мне кажется, вы путаете MVC и наличие RESTful URL схемы (http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services).
MVC - это просто шаблон кодирования, который разделяет сущности и модули. Например, логику приложения от шаблонов графического интерфейса, в то время как схема URL - это совсем другое дело. URL - это просто доступ к веб-ресурсу. MVC-фреймворки, такие как CodeIgnitor, все еще могут давать вам "уродливые" URL, если вы не справитесь с этим с помощью .htaccess
.MVC - это архитектурный шаблон, ориентированный на разделение задач; URL-адреса не имеют к этому никакого отношения.
URL-адреса обрабатываются сервером. Если вы используете Apache, настройте mod_rewrite.
При этом, возможно, вы не захотите изобретать велосипед, но посмотрите на доступные варианты: существует множество PHP-фреймворков, ориентированных на MVC. Найдите тот, который вам нравится и в котором вы можете продуктивно работать, и используйте его.
Мне кажется, вы путаете MVC с параметрами запроса. Эти два понятия не обязательно связаны, хотя верно то, что более популярные PHP MVC-фреймворки маскируют параметры с помощью mod_rewrite или аналогичного метода.
MVC - это просто способ отделить логику представления от бизнес-логики. Подумайте об этом так: если у вас есть сайт, использующий MVC, вы можете легко создать версию для мобильных телефонов, просто меняя представления в зависимости от браузера, логика сайта не должна меняться, только HTML, который отправляется клиенту.
Похоже, в вашем вопросе смешиваются две разные темы. Контроллер представления модели (MVC) и красивые URL-адреса.
Контроллер представления модели - это парадигма дизайна, которая позволяет вам разделять вашу логику (модель), ваши шаблоны (представления) и управляющий ввод / вывод (контроллер).
Симпатичные URL-адреса , с другой стороны, позволяют перенаправлять URL-адреса на основе правил формата ( обычно правила .htaccess ).
Модель-Представление-Контроллер - информация о парадигме проектирования.
Учебник по красивым URL - реализация использования Apache mod_rewrite.
mod_rewrite - информация о том, что такое движок перезаписи.
вы можете подумать о том, чтобы начать с использования одного из множества различных фреймворков MVC, таких как CodeIgniter или cakePHP . Эти структуры были разработаны многими людьми и усовершенствованы в течение определенного периода времени. В MVC нет необходимости, но как только шаблон установлен, создание веб-приложений происходит очень быстро.
Когда использовать... Постоянно, это хорошая практика.
Лично мой выбор: Symphone и Doctrine могут облегчить написание больших приложений командой. Но начинал с CodeIgniter.
Вы действительно усложняете себе жизнь, пытаясь написать свой собственный mvc. (Вы не делаете это, манипулируя схемой URL). Хотя написать его самостоятельно - это хороший образовательный опыт, вы не получите такого уровня качества и преимуществ шаблона MVC, изобретая колесо.
Напишите свое приложение на symfony, zend, codeigniter cake или на любом из хороших фреймворков MVC с открытым исходным кодом. Когда вы почувствуете, как это должно работать, вам следует создать свое собственное для развлечения.
Эти фреймворки существуют для того, чтобы ваши проекты быстрее кодировались и были более удобными в обслуживании.
Сохранение кода, HTML и данных в разных папках - это самый простой способ структурирования приложения - и это основная причина для внедрения MVC: организация.
Другие паттерны проектирования, присутствующие в большинстве фреймворков, дополняют MVC и способствуют повторному использованию кода, быстрой разработке и т.д. Но последнее можно сделать и без MVC - все, что для этого нужно, это библиотека кода! Большинство фреймворков используют паттерн проектирования MVC, но MVC = фреймворк.
Некоторые фреймворки требуют, чтобы вы настроили Apache (Lighty, Nginx и т.д.), чтобы сделать его расширением фреймворка. Красивые URL - это просто способ представления входных данных (представление), которые потребляются контроллером, чтобы последний мог направить их в соответствующий обработчик. Если рассматривать .htaccess в этом свете, то для таких фреймворков он является неотъемлемой частью MVC.
Прежде чем погрузиться в проект, следует провести небольшое исследование. Большинство фреймворков используют запутанный подход к MVC, что привело многих в замешательство. Fat-Free Framework использует более прямой и простой путь.