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 системе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
morph-x
Отправлено: 10 Декабря, 2011 - 02:34:11
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Короче, я написал библиотеку-шаблонизатор. При вызове функции Teamplate::parse() указываются два параметра: первый - файл, второй - данные (переменные). Каждый контроллер он как бы отдает две переменные - заголовок и содержимое. Но в шаблоне, кроме переменных есть еще блоки. Откуда их брать шаблонизатору? Грузить в каждом контроллере не рационально. И что они вообще представляют (или должны представлять) ? Вьюшки - наверное нет, потому что во вьюшка не должна быть логика (а в случаее с блоком комментариев там вообще и к БД запросы...). Контроллеры - тоже нет, потому что обращаться к контроллеру из библиотеки это... нельзя (да и вроде невозможно в CI). Модели отпадают, потому что они только для работы с БД (ну а в случае с "толстыми" моделями повторяется случай с контроллером). Остается библиотеки, но... тогда библиотека будет обращаться к модели, не знаю, хорошо ли это.... Вообщем подскажите, как с этим быть. Заранее спасибо.
 
 Top
sKaa
Отправлено: 10 Декабря, 2011 - 04:23:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


А если внутри шаблона :
 
 Top
vlom
Отправлено: 10 Декабря, 2011 - 07:47:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Я пытаюсь реализовать следующим способом
Основной контент формируется при загрузке системы, а дополнительные модули вызываются из шаблона.
PHP:
скопировать код в буфер обмена
  1. Mod::$getInst()->load('position')

В данном вызове параметр - это позиция в шаблоне.
Далее идет запрос к базе, в которой хранятся таблицы с информацией о включенных модулях. Ну и соответсвено, если в базе находится модули с указанной позицией, их загрузка и выдача результат в соответствии с логикой
 
 Top
caballero
Отправлено: 10 Декабря, 2011 - 11:06:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




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


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
sKaa
Отправлено: 10 Декабря, 2011 - 12:43:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


caballero, я вот, что заметил - У тебя какая-то неприязнь к MVC паттерну )))
 
 Top
caballero
Отправлено: 10 Декабря, 2011 - 15:50:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
я вот, что заметил - У тебя какая-то неприязнь к MVC паттерну


как и прочим дебильным решениям которое школота тупо лепит туда где оно не лепится, а потом закидывает форумы вопросами а как мне теперь тут сделать элементарную операцию.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
sKaa
Отправлено: 10 Декабря, 2011 - 16:03:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Ну так такие форумы и созданы для новичков чтоб они учились и получали советы. Если вы испытываете такую неприязнь, что к методам их работы, что к ним самим думаю вам стоит сменить этот форум на какой нибудь более профессиональный.
 
 Top
caballero
Отправлено: 10 Декабря, 2011 - 16:32:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
форумы и созданы для новичков чтоб они учились


Так в том и проблема что не хотят учиться. Именно учиться программировать учится решать практические задачи . Хотят слепить все по быстрому с готовых кубиков чтобы потом по быстрому слепить готовый говносайт и бабла срубить. Отсюда попытка заюзать MVC, щаблонизаторы, аякс, node.js и прочие якобы чудодейственные технологии которые позволят это сделать не шевеля мозгами и не работая руками.
Отсюда и посты на форумах типа - пишу свою соцсеть (Еба!) у меня проблемы с кодировкой или как метод класса написать.

Лично я всегда помогаю советом если видно что человек старается что то понять. Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял. Даже на форумах бывает по три раза переспрашиваю и переуточняю что ж он бедолага сказать то хочет. А он программировать берется для тупого компа с процом который переспрашивать не умеет.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
sKaa
Отправлено: 10 Декабря, 2011 - 17:05:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


caballero пишет:
Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял
Не, ну таких я тоже стараюсь игнорировать если вопросы смех не вызывают ))

Но я просто по своему не большому опыту могу сказать, что я тоже когда впервые увидел пхп знания о программировании у меня были не дальше if, else, switch, while. Что такое классы, методы и прочее прочее я узнавал упорными попытками написать свою (соц сеть) - ну это образно, вещи были разные ). И такими упорными попытками говнокода, может знаешь такое чувство есть когда на следующий день всё переписать хочется потому что имхо гавно написал? Ну так вот такими попытками я отошел от процедурных стилей и потихоньку пришел к ООП. Начал читать хоть какие-то мануалы.
 
 Top
morph-x
Отправлено: 11 Декабря, 2011 - 16:02:52
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




caballero, ну ладно, я уже понял что MVC не для вэба... Ну как тогда насчет HMVC? Там вроде дела обстоят немного получше, или вам он тоже не нравится? Тогда хотя бы хуки/события должны подойти...?
(Добавление)

caballero пишет:
Но некоторые даже сформулировать вопрос нормально не удосужатся так чтобы гугл понял.

У меня все-таки получилось Улыбка .
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 16:24:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Ну как тогда насчет HMVC

Дак это как раз MVC и есть. Просто в CI изначально MVC самый упрощенный -там нельзя нормально разделить сайт на модули в случае большого сайта (но зато гораздо проще если сайт небольшой). Поэтому разработали плюшку которая позволяет строить контроллеры и прочее в иерархию. У других фреймворков начиная с зенда это в коробке.

Цитата:
Тогда хотя бы хуки/события должны подойти.

Хуки еще хуже. Друпал - это пипец.
Поди догадайся что на некое событие в некоем месте стоит хук и чего то делает.
Но если говорить о компонентных событийно-ориентированых фреймворках где события и их обработчики вменяемым образом присутствуют в коде - то таки да это гораздо удобнее.

(Отредактировано автором: 11 Декабря, 2011 - 16:29:24)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 11 Декабря, 2011 - 16:27:40
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




caballero пишет:
Дак это как раз оно и есть.

Простите, что вы имели ввиду под словом "оно" ?
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 16:28:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Оно - это MVC (исправил)

(Отредактировано автором: 11 Декабря, 2011 - 16:29:45)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 11 Декабря, 2011 - 16:37:49
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




caballero, значит вы HMVC тоже не любите (как и просто MVC)? Если да, то можете сказать почему? И еще интересно было бы узнать каким паттерном Вы пользуетесь? Или вы сами все продумываете, не используя паттерны проэктирования?
 
 Top
caballero
Отправлено: 11 Декабря, 2011 - 16:56:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




О неудобстве MVC паттерна например достаточно грамотно сказано в книге Котеровао PHP. Кроме того речь не о MVC вообще. Просто MVC - это архитектурный принцип для отделения мух от котлет. Для этого достаточно не смешивать в кучу PHP с HTML и SQL. Тут даже ООП не обязательно.
Паттерн MVC в стиле зенда и тех кто собезьянничал с него - это конкретная и весьма неудачная реализация идеи.

Цитата:
Или вы сами все продумываете, не используя паттерны проэктирования?

Ну синглетон например для работы с БД юзаю всегда. Остальное по случаю. Впрочем паттерны - это просто архитектурные приемы которые кто то собрал и дал им имена.
Разработчик с опытом применяет эти приемы даже не подозревая что это оказывается паттерн есть такой. Тот же синглетон я применил в Java первый раз еще до того как услышал вообще термин "паттерн проектирования".

(Отредактировано автором: 11 Декабря, 2011 - 16:57:35)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB