Yii совсем без MVC
23 января 2011
Интересный пост «Yii без MVC» нашёлся в блоге Евгения Карагодина. В нём он описывает использование Yii без view и стандартных директорий. Можно пойти дальше и использовать Yii вообще без MVC. Ну или использовать, например, только M. Для этого во входном файле делаем так:
$yii='path/to/framework/yii.php'; $config=dirname(__FILE__).'/config.php'; require($yii); // при желании можно объявить конфиг параметром в виде массива и не использовать файл Yii::createWebApplication($config); // далее любой код с использованием Yii: $criteria = new CDbCriteria(); $criteria->limit = 10; $criteria->order = 'id DESC'; $posts = Post::model()->findAll($criteria); echo "<ol>"; foreach($posts as $post) { echo "<li>"; echo $post->title; echo "</li>"; } echo "</ol>"
Комментарии RSS по email OK
А в чем сакральный смысл? MVC как раз и предназначено для того, чтоб в коде не было каши из php, sql и html.
Смысл в том, что MVC не всегда нужен. А ещё, когда занимаешься обучением программированию на yii гораздо проще начать с маленького примера, от занятия к занятию усложняя его. Более плавное введение дает лучшее усвоение, чем сразу объяснять зачем столько папок и файлов.
Да, возможно вы и правы. Но, насколько я понимаю, выводить html в контроллере без вьюхи можно и без манипуляций с индексным файлом файлом.
По сути одно из: "использование Yii во внешних приложениях".
По мне, так вредная статья :-)
Нет, показать как можно перейти от плохих привычек к хорошим)
Уже проскакивало что-то такое на русском форуме в рецептах :) Но все равно интересная инфа.
Мне кажеться тема поднятая в этом посте довольно сильно пересекается с тем, что не давно обсуждалось на форуме сообщества NodeJS. У меня большая просьба ко всем участникам здешней дисскусии прокоментировать здесь, и на самом форуме ваше мнение касательно следующей идеи:
Местонахождение форумной дисскусии можно найти по следующему линку: Есть ли смысл создавать свой велосипед. Мне лично крайне важно развернуть широкую и желательно эмоциональную дисскусию на данную тему. По ряду причин ставки на новую патерн очень велики. Что я подразумеваю под этими словами вам будет очевидно буквально завтра, если вы будете следить и еще лучше учавствовать в упомянутой форумной дисскусией.
Vladimir, я показал только вариант отказа от MVC, но ничего не предлагал взамен так как считаю в большинстве случаев отход от удобного MVC не очень нужным.
В теме на форуме сложно понять, о чём речь. Связь с этим постом очень туманна. Как будет готово нормальное описание, готов почитать-покритиковать. Пишите в почту.
По мне, так лучше начинать обучению Yii только тогда, когда человек уже знает, что такое MVC. Тогда ни учить этому с нуля, ни переучивать после не придется.
Суть подобных фреймворков как раз и состоит в том, что в них уже есть реализация MVC, поэтому нужно начинать именно с демонстрации того, как использовать данный шаблон именно в этом конкретном фреймворке. Иначе получится не обучение фреймворку, а просто демонстрация того, что он как бы в принципе работает и что в нем есть какие-то функции.
Универсальную Data Management System, вам не реализовать, используя MVC. Думаю, что реализация подобной системы возможна при наличии, двух условий. Первое условие это использование баз данных класса "NO SQL". К примеру Mongo вписывается здесь неплохо. Второе условие это отказ от применения специфичных под каждую структуру данных моделей и контроллеров. Ко всему сказанному я считаю, что имеет место быть явный перебор в использовании MVC патерн. Было бы очень интересно знать, если хотя бы кто-то из ваших читателей тоже ставит под сомнение универсальность MVC патерн.
Большое спасибо за готовность принять участие в обсуждении. И я несомненно воспользуюсь возможностью контактировать с вами через почту. Я кое-что дописываю, на эту тему, так что надеюсь, что погода скоро поменяется :)
С консольки удобно запускать скрипты.
А как по мне так удобно для AJAX приложений. Там VC не особо нужны ибо каждый запрос от силы 1-2 запроса в БД и возврат результата в формате JSON =)
Если возникает проблема с GZip, то как вариант поможет решение:
Так вот оказывается как надо было делать то? :) Я то все голову ломал.