Стандарты кодирования PHP

Я искал некоторые рекомендации по компоновке PHP-кода. Я нашел несколько хороших ссылок, например:

http://www.dagbladet.no/development/phpcodingstandard/

и этот вопрос на SO.

Тем не менее, ничто из этого не доходит до того, что мне особенно интересно, это интеграция HTML и PHP. Например:

  • нормально ли иметь файл PHP, который начинается с HTML-тегов, и только там, где требуется PHP? Или вы должны иметь только один раздел php, содержащий все?
  • Если у вас есть фрагмент PHP-кода, в середине которого есть набор эхо-сигналов, который выводит только фиксированный бит HTML, лучше ли вырваться из php и просто поместить HTML напрямую?
  • Должны ли все функции быть определены в выделенных php файлах, или нормально определить набор функций в верхней части файла и вызвать их позже в том же файле?

Вероятно, есть другие вопросы, которые я хотел бы задать, но на самом деле я ищу кого-то, чтобы указать мне на какой-то ресурс в Интернете, который предлагает руководство по общей идее объединить вместе HTML и PHP.

Ответ 1

На самом деле нет ни одного, единого стандарта для этих вещей. В этом смысле большинство языков являются более ограничительными, чем PHP.

В последующие годы появилось много так называемых фреймворков, и среди прочего они определяют набор правил для всего: от наименования до места размещения файлов и к какому стилю должен следовать ваш код. Существует несколько фреймворков, поэтому вы не можете выбрать один и назвать его стандартом. Однако в большинстве структур есть подмножество общности. Например, большинство из них следует за некоторыми вариантами стандартов кодирования PEAR.

Ответ 2

Сочетание кода программирования и выходных данных (включая HTML) - это ИМХО очень плохая идея. Большинство гуру PHP, которые я знаю, используют механизм шаблонов, например Smarty, чтобы сохранить две вещи отдельно.

Ответ 3

Я обычно стараюсь следовать стандартам, установленным языковыми ядровыми библиотеками.... oh wait.

Серьезно - вы должны попробовать и шаблон MVC в любом веб-приложении, поскольку это довольно стандартная практика, независимо от языка. В PHP это может быть достигнуто быстрым и грязным способом, рассматривая index.php как ваш контроллер и разделяя логику данных и представление по файлу. Этот небольшой шаг, по крайней мере, позволит вам переместить свой код в полнофункциональную структуру, когда и когда вы выберете.

Ответ 4

Используйте механизм шаблонов, когда сможете. Если вы не изучили один или не хотите накладных расходов (что является минимальным), используйте методы, которые вызывают быстрый и грязный шаблон:

  • Функции, которые ничего не отображают, не имеют места в файле, который что-то отображает.
  • Печать переменных, а не HTML. Всякий раз, когда вы выводите HTML, выходите из PHP и пишите HTML с инструкциями печати для обработки любых небольших деталей, которые необходимы (действия для форм, идентификаторы для элементов управления и т.д.).
  • Помните, что когда вы включаете файл, который выходит из PHP для печати контента, это будет обрабатываться так же, как если бы вы делали это в основном файле. Таким образом, вы можете создавать простые шаблоны, которые включали только файлы PHP, эти файлы будут печатать переменные в нужных местах. Ваш index.php(или что-то еще) выполняет всю реальную работу, но весь экран выполняется вторичным "шаблоном".

Многие учебники PHP смешивают логику и код отображения. Мне потребовались годы, чтобы нарушить вредные привычки, которые поощряли меня. По моему опыту, вы не можете слишком многое отделять PHP, и энтропия будет тянуть вас к смешанному коду, если вы не будете бороться с ним.

Ответ 5

Стандарты кодирования должны быть больше, чем раскладывать ваш синтаксис, но, к сожалению, что они, как правило, находятся в PHP.

FWIW, phc будет довольно печатать ваш код в стиле Zend.

Ответ 6

WHAT ARE CODING STANDARDS?

Coding standards (also sometimes known as ‘Coding Conventions’ or ‘Coding 
Rules’) are a set of guidelines that a group of developers stick to, to ensure 
that they are all essentially "singing from the same hymn sheet". It means 
that they all code in the same format and therefore, regardless of who is next 
to work on a particular bit of code, the syntax and formatting used will be 
instantly familiar.
Naming conventions

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

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

Пример: переменную для взвешивания в качестве параметра для грузовика можно назвать TrkWeight или TruckWeightKilograms, причем TruckWeightKilograms является более предпочтительным, так как он мгновенно распознается. См. Имена переменных CamelCase.