Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите построить ядро на MVC
Подскажите, что может не правильно построено (лучше знать изначально)
В дальнейшем есть желание прикрутить ORM propel и Смарти.
Но пока не могу логически спроектировать взаимодействия в самом начале, много мыслей и не знаю какие с них правильные а какие нет.
Дальнейшее развитие вижу в в классе "Router", так что он передает параметры классу (он еще не создан), которые будет загружать необходимый модуль с триадой (MVC).
digi
Отправлено: 26 Сентября, 2012 - 12:00:32
Посетитель
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
1) один файл = один класс и больше ничего!, например:
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
смотря какие цели у человека если научиться правильно программировать, то один файл = один класс, а если побаловаться, то конечно есть много вариантов
DeepVarvar
Отправлено: 26 Сентября, 2012 - 12:07:09
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
digi пишет:
к шаблонизатору следует присмотреться к ...
PHP )))
Тем не менее давайте не будем холиварить тут на тему шаблонизаторов.
Автору вопроса я показал всего лишь что - сколько людей, столько и мнений.
И еще я считаю, чем проще приложение, тем лучше. И я бы удалял в том же Zend или в Symfony все файлы, которые не будут использоваться в конечном приложении. (Добавление)
digi пишет:
побаловаться
Я не говорил о баловстве. Я вполне серьезно. Большое кол-во файлов тоже играет роль в производительности.
Вот простой пример, раньше я хостил прямо с малыша-лаптопа Compaq mini. Так вот зендяра там еле шевелился. В отличии от конечных приложений типа тяжелого ванилла-форумс.
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
DeepVarvar пишет:
Тем не менее давайте не будем холиварить тут на тему шаблонизаторов.
Автору вопроса я показал всего лишь что - сколько людей, столько и мнений.
холиварить конечно ненадо ТС-у достаточно будет погуглить и найти статьи, где описывается почему следует юзать шаблонизаторы, либо их РНР-нативные аналоги (например https://github.com/symfony/Templating), а не заниматься взрывом мозга решая задачи наследования и экранирования.
простота бывает разной... внешняя и внутренняя, как правило внутренняя "простота" тесно граничит с ограниченностью функционала, а вот внешне решение должно быть простым, это да
производительность следует изменять не "кол-вом файлов", а бенчмарками на готовом продакшын сервере, где грамотно применяются все механизмы кеширования.
но важнее в наше время это производиительность программиста т.к. железо стоит дешевле работы человека.
KingStar
Отправлено: 26 Сентября, 2012 - 16:22:32
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
а я хоть убейте, не люблю шаблонизаторы, обсалютно не вижу для себя смысла их использовать, php - лучший шаблонизатор
----- То что программа работает, не означает что она написана правильно!
DeepVarvar
Отправлено: 26 Сентября, 2012 - 16:30:03
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
KingStar пишет:
php - лучший шаблонизатор
+1
digi пишет:
производительность следует изменять не "кол-вом файлов", а бенчмарками на готовом продакшын сервере, где грамотно применяются все механизмы кеширования
А без кеша уже моветон?
Напоминает это товарисча Каганова:
Цитата:
С точки зрения пользователя, чем Win98 отличается от XP и Vista? Да ничем. Поменялись фонты, шрифты, рисунки на кнопочках, понимает теперь чуть больше оборудования и умеет монтировать флэшки? Я, пользователь, работаю с прикладными программами, а они остались прежними и вообще не имеют отношения к системе. Они любые (за редким исключением) точно так же запускаются под любой совместимой версией ОС - хоть под Win98, хоть под Vista. Так с какого перепуга XP тормозит в два раза больше, чем Win98, а Vista - в три раза тормознее, чем XP? Что это? Рисунки на кнопочках такие великие или умение монтировать флэшку без установки дополнительного драйвера так грузит процессор и требует лишних 256 мегов памяти?
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
пускай ТС сам разберется в вопросе что ему важно и как юзать ;) человек явно начинающий и ему надо указать как можно более "праведный" путь, а костылять еще успеет научиться ;)
DeepVarvar
Отправлено: 26 Сентября, 2012 - 16:47:43
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
давай на "ты" по свойски ;)
а намекаю я на то, что новичкам надо указать как "правильно", а не как "можно"...
разумеется, когда у новичка появятся вопросы "а почему вот так и так правильно, ведь можно вот так", вот тут уже начнется профессиональный рост
DeepVarvar
Отправлено: 26 Сентября, 2012 - 17:05:58
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Оки, догворились, на "ты"
Вобщем ТС должен тут все прочитать и надеюсь понять правильно.
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Помог: 4 раз(а)
всё верно надо прочитать некоторые ключевые слова, погуглить, скачать, покрутить, подумать что в каждом из решений есть что-то полезное для проекта, над которым он начал работать, ну и естественно запомнить, что вообще есть на передовой в мире РНР, а дальше уже прикладывать моск и решать каким методом пользоваться в конкретной задаче.
Саныч
Отправлено: 26 Сентября, 2012 - 17:15:55
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
digi, Вы сами себе противоречите. То говорите, что человек должен сам разобраться в вопросе, то утверждаете, что ваше мнение является единственным правильным.
Шаблонизатор? Тут я соглашусь с DeepVarvar-ом и KingStar-ом, PHP - самый лучший шаблонизатор. Собственно он для этого и был создан.
А вот по MVC ничего не буду писать, т.к. сам еще немного плаваю в этой теме. Зато задам вопрос
Как раз сейчас занимаюсь написанием сайта. Решил реализовать в нем MVC. Ну в моем понимании естественно Я просто опишу классы, если найдете какие ошибки, замечани прошу указать.
Ну само собой в htaccess скидываем все запросы на индех.
В индексе класс Base. В нем происходит подключение файла базовых настроек, минимальная проверка их, инициализация автозагрузки, методов обработки ошибок и исключений. И создается объект класса Bootstrap
Bootstrap - создаем объект класса DB. DB - синглтон, из названия ясно, что это работа с базой. Далее в Bootstrap - создаем объект Users. В Users происходит авторизация пользователя и выборка соответствующих прав из базы. Далее в Bootstrap-е зачитываем настройки сайта из базы. Последнее создаем объект BaseController.
В BaseController определяем текущий контроллер и передаем управление ему.
Все контроллеры наследуются от BaseController-а. Также в BaseController создаем объект View - грубо говоря это наш шаблонизатор.
В контроллерах определяем нужное действие и вызываем соответсвующую модель. В моделе уже производим все основные операции, устанавливаем нужный шаблон в View, передаем данные ну и т.д. И в самом конце идет вызов метода View, который уже грузит нужный шаблон, подставляет данные и выводит результат.
Собственно все Вот так я себе представляю все это дело.
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
caballero
Отправлено: 26 Сентября, 2012 - 17:21:29
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
пускай ТС сам разберется в вопросе что ему важно и как юзать ;) человек явно начинающий и ему надо указать как можно более "праведный" путь, а костылять еще успеет научиться ;)
так чего он тогда полез писать ядро на MVC если не имеет понятия ни о то ни о другом.
как не новичек то сразу паттерны, ядра , социальные сети.
наберись опыта потом не будет вопросов где какие классы надо
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.