2017-01-15 7 views
0

я в настоящее время developping мой первый настоящий сайт PHP, и я считаю себя, особенно при написании Ajax/PHP страниц, написание процессуальных кодексов, которые выглядят следующим образом:Использует ли нахмуренный/плохой символ?

//sanitize input 
foo(); 

//handle request 
bar(); 

//sends reply 
echo json_encode($result); 

die; 

function foo(){...} 
function bar(){...} 

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

Мне нравится использовать штамп; в этом контексте, поскольку он обеспечивает четкое разделение между двумя частями кода, но мне интересно, почему-то он недоволен.

Спасибо заранее!

+1

не по теме, потому что чисто основанное на мнениях. лично я должен сказать: почему бы вам не сохранить свою функцию в отдельных файлах и включить их? и почему вы не группируете связанные функции в классы? –

+0

Это, на мой взгляд, действительный вопрос «что лучше всего». @FranzGleichmann – snovelli

+0

Ну, много вызовов ajax достигает только небольшой задачи, например, добавления/проверки/удаления из базы данных. Поэтому мне кажется, что если у меня есть один файл со всеми связанными функциями (функциями из более чем одного сценария ajax), он становится раздражающим для поддержания (потому что в большом файле будет много разных, но все же подобных функций), а если я это сделаю один файл функции на один скрипт ajax, он делает много файлов с несколькими строками в нем. Это немного дилемма. Каков обычный способ сделать в этом сценарии? – Dominus

ответ

1

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

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

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

Профессиональный программист обычно группирует определения функций вместе с вверху файла, перед кодом, который их вызывает. Это соглашение восходит к языкам структурированного программирования, таким как Pascal, который фактически применял это, как правило, но имеет смысл вообще. Подумайте, как люди общаются в повседневной жизни: разве это не смущает, когда человек начинает говорить о чем-то, прежде чем они расскажут вам, о чем они говорят?

+0

Лично я считаю, что наличие функций наверху делает код более запутанным. Мне нравится открывать файл, видеть основной код и получать представление о том, что происходит. Например, в примере обсуждения это эквивалент того, что кто-то расскажет вам обо всех его аргументах, а затем собрал их вместе, чтобы вы поняли, о чем он говорит. Но если, конечно, я получаю, откуда вы пришли, а затем «добавление кода после смерти», пример уже со мной! Итак, как вы думаете, лучший способ объявить функции? Использовать ли это верхнюю декларацию или другой файл? – Dominus

+0

Я следовал за соглашением и определял ваши функции перед кодом, который их использует. Большинство программ организованы таким образом, так что вам будет только полезно читать код, написанный так.Размещение функций в отдельном файле имеет смысл только в том случае, если они связаны друг с другом с точки зрения их контекста или использования и используются несколькими сценариями. –