Целесообразность использование буферизации вывода ob_start() в скрипте

alex_0086

Новичок
тогда не называйте его компонентом. Компонент в крайнем случае должен формировать html, лучше если только массив, и выкидывать все это в вид нужно в контроллере. В виде принимаете компонент и выводите на экран.
Я не использую MVC. Это маленький написанный мной механизм. Я основывался на примере Joomla. Когда в папке есть компонент например com_content и если человек наберет localhost/content/list то ему выдаст список контента. Так там в компоненте можно спокойно в нужном месте писать echo и т.д.
 

WMix

герр M:)ller
Партнер клуба
Я хочу узнать как реализовывают такой момент более опытные.
там где встречаются комманды
PHP:
$msql->request(Select * from `client` where `client_id` = $client_id);
не должна встречаться
PHP:
echo "$key=$val"
Тогда мне просто лучше использовать конкатацию и str_replace?
str_replace это еще одна капсула
 

alex_0086

Новичок
там где встречаются комманды
PHP:
$msql->request(Select * from `client` where `client_id` = $client_id);
не должна встречаться
PHP:
echo "$key=$val"
str_replace это еще одна капсула
Ясно в общем строго настрого нужно тогда исключить echo и передавать весь результать в переменную. Да? А еще вопрос минусы при использовании ob_start. Есть какие-нибудь? В интернете смотрел. Одни советуют отключать. Другие вообще говорят что крутая штука.
 

Beavis

Banned
А еще вопрос минусы при использовании ob_start. Есть какие-нибудь? В интернете смотрел. Одни советуют отключать. Другие вообще говорят что крутая штука.
Для тебя минус один - это нецелесообразность.
Крутой штукой это может быть только тогда, когда она действительно нужна.
 

WMix

герр M:)ller
Партнер клуба
иногда без ob_start не обойдешься... НО ЕСЛИ ЕСТЬ ВОЗМОЖНОСТЬ НЕ ВКЛЮЧАЙ (он немножко в других случаях удобен)
в твоем случае просто раздели "компонент на логику и вывод"...
обработай логику, далее хоть инклудами хоть еще как вызывай визуализацию!
хорошо если обработать сначало логику ВСЕХ учавствующих компонентов, а после вывод...
 

alex_0086

Новичок
Для тебя минус один - это нецелесообразность.
Крутой штукой это может быть только тогда, когда она действительно нужна.
А можно маленький пример, когда она будет нужна? Она может быть нужна если в одном файле подключается 3-4 исполняющих файла?
 

alex_0086

Новичок
иногда без ob_start не обойдешься...
в твоем случае просто раздели "компонент на логику и вывод"...
обработай логику, далее хоть инклудами хоть еще как вызывай визуализацию!
хорошо если обработать сначало логику ВСЕХ учавствующих компонентов, а после вывод...
В общем нужно думать дальше как реализовать без ob_start?
 

alex_0086

Новичок
Все буду искать решение в интернете. Всем БОЛЬШОЕ спасибо за ответы.
 

alex_0086

Новичок
Нет, он нужен. Но должен выть вызван перед шаблоном.
WMix советует без него и просто обойтись обычным присваиванием. Но тут тогда как я понял должна быть одна переменная например $template_body и каждый раз с ней выполнять $template_body .= "обработка скрипта или html текст". С ob_start легче то что в том файле где есть инклуд я просто пишу html код без <? и ?>и он у меня сохраняется в переменной. А в чем может быть минус например использование ob_start в крупном проекте например интернет магазине? Заранее спасибо
 

alex_0086

Новичок
во блин, понаписали-то...
)))) Знаю. Я хочу реализовать как я уже писал. Наподобие механизма в joomla. В joomla в компоненте (уточнаю это не MVC) просто пишешь код или HTML теги без кода. А если не использовать ob_start то это надо все присваивать в переменную. А когда у тебя много HTML тэгов + еще javascript (Да jscript можно вывести в отдельный файл. Ноон подключиться в каждо странице) и получается очень много. Вот я и думал может есть альтернативы. )))
 

Фанат

oncle terrible
Команда форума
И как всегда - один мусор.
Вот я не могу понять как например все действия которые делает компонент сохранить в переменную.
Это НЕПРАВИЛЬНО.
компонент должен возвращать ДАННЫЕ.
А не "все действия"
Никакой конкатенации НЕ НУЖНО. Если у тебя есть конкатенация - значит, у тебя говнокод, который не использует шаблоны.
PHP:
Я хочу узнать как реализовывают такой момент более опытные.
Более опытные используют ШАБЛОНЫ.
Не только для вывода логотипа, меню и тегов <body>, а для ЛЮБОГО вывода.
А можно пример? К примеру есть переменная $rezult и как в ней сохранить результат работы компонента без ob_start?
Ещё раз:
в переменной $rezult не должно быть HTML.
в ней должен быть массив для отрисовки HTML шаблоном.
Пример: http://phpfaq.ru/tpl#example
Я хочу реализовать как я уже писал.
Если ты в любом случае хочешь реализовать так, как хочет твоя левая пятка, не надо спрашивать, как сделать правильно.
 

alex_0086

Новичок
И как всегда - один мусор.
.................
Если ты в любом случае хочешь реализовать так, как хочет твоя левая пятка, не надо спрашивать, как сделать правильно.
Я имеюю ввиду чтобы например код можно было писать удобнее. Поэтому спрашиваю совета.
ссылку я прочитал.
В подключаемом шаблоне я подключаю только одну переменную <body><?=$rezult?></body>
При этом структуру я формирую в компоненте например list выдает таблицу с заказом, edit выдает форму с редактированием. при переходе в localhost/list в компоненте list.php подключается шаблон zakazy_list.php в zakazy_list.php храниться структура <table>.......</table> и т.д.Я искал и читал но так и не мог понять. Как это реализовывают другие cms/
 

Фанат

oncle terrible
Команда форума
Ты можешь объяснить, почему тебе надо обязательно сохранять результат работы zakazy_list.php в переменную?
почему ты не можешь просто этот файл инклюдить вместо <?=$rezult?>?
 
Сверху