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 системе
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Короче, я написал библиотеку-шаблонизатор. При вызове функции Teamplate::parse() указываются два параметра: первый - файл, второй - данные (переменные). Каждый контроллер он как бы отдает две переменные - заголовок и содержимое. Но в шаблоне, кроме переменных есть еще блоки. Откуда их брать шаблонизатору? Грузить в каждом контроллере не рационально. И что они вообще представляют (или должны представлять) ? Вьюшки - наверное нет, потому что во вьюшка не должна быть логика (а в случаее с блоком комментариев там вообще и к БД запросы...). Контроллеры - тоже нет, потому что обращаться к контроллеру из библиотеки это... нельзя (да и вроде невозможно в CI). Модели отпадают, потому что они только для работы с БД (ну а в случае с "толстыми" моделями повторяется случай с контроллером). Остается библиотеки, но... тогда библиотека будет обращаться к модели, не знаю, хорошо ли это.... Вообщем подскажите, как с этим быть. Заранее спасибо.
sKaa
Отправлено: 10 Декабря, 2011 - 04:23:50
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
В данном вызове параметр - это позиция в шаблоне.
Далее идет запрос к базе, в которой хранятся таблицы с информацией о включенных модулях. Ну и соответсвено, если в базе находится модули с указанной позицией, их загрузка и выдача результат в соответствии с логикой
caballero
Отправлено: 10 Декабря, 2011 - 11:06:47
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Обычно принято чем писать что либо надо думать как это будет работать.
В данном случае две модные фичи - MVC, которое подходит для вэба как собаке пятое колесо , и шаблонизатор нафиг не нужный для PHP, который является шаблонизатором по своей природе.
Поэтому два варианта - либо костыли,которые потом лучше никому не показывать, либо переписать и то и другое чтобы оно сразу стыковалось.
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
caballero, я вот, что заметил - У тебя какая-то неприязнь к MVC паттерну )))
caballero
Отправлено: 10 Декабря, 2011 - 15:50:49
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
я вот, что заметил - У тебя какая-то неприязнь к MVC паттерну
как и прочим дебильным решениям которое школота тупо лепит туда где оно не лепится, а потом закидывает форумы вопросами а как мне теперь тут сделать элементарную операцию.
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Ну так такие форумы и созданы для новичков чтоб они учились и получали советы. Если вы испытываете такую неприязнь, что к методам их работы, что к ним самим думаю вам стоит сменить этот форум на какой нибудь более профессиональный.
caballero
Отправлено: 10 Декабря, 2011 - 16:32:54
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
форумы и созданы для новичков чтоб они учились
Так в том и проблема что не хотят учиться. Именно учиться программировать учится решать практические задачи . Хотят слепить все по быстрому с готовых кубиков чтобы потом по быстрому слепить готовый говносайт и бабла срубить. Отсюда попытка заюзать MVC, щаблонизаторы, аякс, node.js и прочие якобы чудодейственные технологии которые позволят это сделать не шевеля мозгами и не работая руками.
Отсюда и посты на форумах типа - пишу свою соцсеть (Еба!) у меня проблемы с кодировкой или как метод класса написать.
Лично я всегда помогаю советом если видно что человек старается что то понять. Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял. Даже на форумах бывает по три раза переспрашиваю и переуточняю что ж он бедолага сказать то хочет. А он программировать берется для тупого компа с процом который переспрашивать не умеет.
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
caballero пишет:
Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял
Не, ну таких я тоже стараюсь игнорировать если вопросы смех не вызывают ))
Но я просто по своему не большому опыту могу сказать, что я тоже когда впервые увидел пхп знания о программировании у меня были не дальше if, else, switch, while. Что такое классы, методы и прочее прочее я узнавал упорными попытками написать свою (соц сеть) - ну это образно, вещи были разные ). И такими упорными попытками говнокода, может знаешь такое чувство есть когда на следующий день всё переписать хочется потому что имхо гавно написал? Ну так вот такими попытками я отошел от процедурных стилей и потихоньку пришел к ООП. Начал читать хоть какие-то мануалы.
morph-x
Отправлено: 11 Декабря, 2011 - 16:02:52
Гость
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
caballero, ну ладно, я уже понял что MVC не для вэба... Ну как тогда насчет HMVC? Там вроде дела обстоят немного получше, или вам он тоже не нравится? Тогда хотя бы хуки/события должны подойти...? (Добавление)
caballero пишет:
Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял.
У меня все-таки получилось .
caballero
Отправлено: 11 Декабря, 2011 - 16:24:11
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Ну как тогда насчет HMVC
Дак это как раз MVC и есть. Просто в CI изначально MVC самый упрощенный -там нельзя нормально разделить сайт на модули в случае большого сайта (но зато гораздо проще если сайт небольшой). Поэтому разработали плюшку которая позволяет строить контроллеры и прочее в иерархию. У других фреймворков начиная с зенда это в коробке.
Цитата:
Тогда хотя бы хуки/события должны подойти.
Хуки еще хуже. Друпал - это пипец.
Поди догадайся что на некое событие в некоем месте стоит хук и чего то делает.
Но если говорить о компонентных событийно-ориентированых фреймворках где события и их обработчики вменяемым образом присутствуют в коде - то таки да это гораздо удобнее.
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
caballero, значит вы HMVC тоже не любите (как и просто MVC)? Если да, то можете сказать почему? И еще интересно было бы узнать каким паттерном Вы пользуетесь? Или вы сами все продумываете, не используя паттерны проэктирования?
caballero
Отправлено: 11 Декабря, 2011 - 16:56:58
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
О неудобстве MVC паттерна например достаточно грамотно сказано в книге Котеровао PHP. Кроме того речь не о MVC вообще. Просто MVC - это архитектурный принцип для отделения мух от котлет. Для этого достаточно не смешивать в кучу PHP с HTML и SQL. Тут даже ООП не обязательно.
Паттерн MVC в стиле зенда и тех кто собезьянничал с него - это конкретная и весьма неудачная реализация идеи.
Цитата:
Или вы сами все продумываете, не используя паттерны проэктирования?
Ну синглетон например для работы с БД юзаю всегда. Остальное по случаю. Впрочем паттерны - это просто архитектурные приемы которые кто то собрал и дал им имена.
Разработчик с опытом применяет эти приемы даже не подозревая что это оказывается паттерн есть такой. Тот же синглетон я применил в Java первый раз еще до того как услышал вообще термин "паттерн проектирования".
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.