Как очистить ранее отраженные объекты в PHP

1) Фарс Business Apps :

Я думаю, что вся структура «Enterprise» - это дым и зеркала. J2EE, .NET, большинство фреймворков Apache и большинство абстракций для управления такими вещами создают гораздо большую сложность, чем решают.

Возьмите любой обычный Java или .NET ORM, или любой предположительно современный MVC-фреймворк, который делает «магию» для решения утомительных и простых задач. Вы заканчиваете тем, что пишете огромное количество уродливого шаблона XML, который трудно проверить и написать быстро. У вас есть массивные API, половина из которых предназначена только для интеграции работы других API, интерфейсов, которые невозможно переработать, и абстрактных классов, которые нужны только для преодоления негибкости Java и C #. Нам просто не нужно больше всего этого.

Как насчет всех различных серверов приложений с их собственным проклятым синтаксисом дескриптора, слишком сложными базами данных и продуктами для групповой работы?

Суть не в том, что сложность == плохая, а в том, что ненужная сложность == плохая , Я работал в крупных корпоративных установках, где некоторые из них были необходимы, но даже в большинстве случаев для решения большинства вариантов использования достаточно всего лишь нескольких собственных сценариев и простого веб-интерфейса.

Я бы попытался заменить все эти корпоративные приложения простыми веб-фреймворками, БД с открытым исходным кодом и тривиальными программными конструкциями.

2) Требуемый n-летний опыт работы:

Если вам не нужен консультант или технический специалист для решения конкретной проблемы, связанной с приложением, API или структурой, тогда вам не нужен кто-то с 5-летним опытом работы в этом приложении. Что вам нужно, так это разработчик / администратор, который может читать документацию, у которого есть знания предметной области во всем, что вы делаете, и который может быстро учиться. Если вам нужно разработать какой-то язык, достойный разработчик поднимет его менее чем за 2 месяца. Если вам нужен администратор для X веб-сервера, через два дня он должен был прочитать справочные страницы и группы новостей и быть в курсе. Все, что меньше, и этот человек не стоит того, что ему платят.

3) Общая учебная программа по специальности «информатика»:

Большинство степеней по информатике и разработке программного обеспечения - бык. Если ваш первый язык программирования - Java или C #, то вы делаете что-то не так. Если вы не получаете несколько курсов, полных алгебры и математики, это неправильно. Если вы не углубляетесь в функциональное программирование, оно неполное. Если вы не можете применить инварианты цикла к тривиальному циклу for, вы, как предполагаемый специалист по информатике, не стоите затрачивать столько сил. Если у вас есть опыт работы с языками x и y и ориентацией на объекты, он полон s ***. Настоящий ученый-компьютерщик видит язык с точки зрения понятий и синтаксисов, которые он использует, и рассматривает методологии программирования как одну из многих, и обладает таким хорошим пониманием основополагающих принципов, как выбор новых языков, методов проектирования или языков спецификаций. быть тривиальным.

45
задан K-Gun 22 October 2019 в 01:40
поделиться

5 ответов

<?php

ob_start();
echo 'a';
print 'b';

// some statement that removes all printed/echoed items
ob_end_clean();

echo 'c';

// the final output is equal to 'c', not 'abc'

?>

Функции буферизации вывода

Функции буферизации вывода также полезны при взломе для принуждения функций, которые печатают только к возвращаемым строкам, т. Е.

<?php
ob_start();
var_dump($myVar);
$data = ob_get_clean();
// do whatever with $data
?>
96
ответ дан 26 November 2019 в 21:07
поделиться

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

При этом вы можете обратиться к параметрам Буферизации вывода в PHP.

1
ответ дан 26 November 2019 в 21:07
поделиться

хотя @monoxide прав, лучше найти более интуитивные способы сделать то же самое. например:

<?php
$val_to_print = $a;
if( $need_to_change==true ) 
    $val_to_print = $b;
// when you are sure you won't have to change again...
echo $val_to_print;
?>

Ура,

младший

4
ответ дан 26 November 2019 в 21:07
поделиться

Если это отладочные данные и информация о состоянии программы, о которой вы беспокоитесь, возможно, trigger_error может быть ближе к тому, что вам нужно, например:

trigger_error ("Attempting to load report #{$report_id}.", E_USER_NOTICE);

Когда ваш сценарий находится в производстве, он не будет отображать никаких ошибок, поскольку обычно они отключены или регистрируются. Это'

0
ответ дан 26 November 2019 в 21:07
поделиться

Если хакер, скажем, имеет доступ к вашему файлу PHP, он также сможет удалить оператор очистки выходного буфера.

Если вы делаете это поскольку вы позволяете своим пользователям загружать сценарии PHP, позвольте мне сказать вам, что это крайне плохая идея.

В обоих случаях

-1
ответ дан 26 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: