Создание идиоматических веб-страниц на PHP - PullRequest
0 голосов
/ 15 апреля 2010

Мой опыт работы с PHP довольно ограничен. Я только что унаследовал некоторые вещи, которые кажутся мне странными, и я хотел бы знать, является ли это стандартным способом делать вещи. Страница, которая отображается в браузере (например, www.example.com/example_page), имеет что-то вроде:

<?
$title = "Page Title";
$meta = "Some metadata";
require("pageheader.inc");
?>
<!-- Content -->

Тогда у pageheader.inc есть что-то вроде:

<?
@$title = ($title) ? $title : "";
@$meta = ($meta) ? $meta : "";
?>
<html>
<head>
<title><?=$title?></title
</head>
<!-- and so forth -->

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

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

Кроме того, я знаю, что «<?» (против «<?php») нежелательно; Я просто воспроизводлю то, что в коде.

Ответы [ 6 ]

3 голосов
/ 15 апреля 2010

Это вид на правильном пути к MVC. MVC это все о разделении интересов. Идея в том, что первый фрагмент устанавливает значения, а затем pageheader.inc выводит их. Это держит логику вне поля зрения.

Это сделано очень небрежно.

3 голосов
/ 15 апреля 2010

Ну, это, конечно, не неверный способ сделать это - но это может быть немного громоздким для чтения и обслуживания. Я бы не сказал, что есть «нормальный» способ сделать что-то подобное в PHP. В конце концов, вы выводите переменные в HTML - поэтому не существует множества вариантов без использования выделенного движка шаблонов (и / или перехода к более основанному на MVC подходу, как упоминалось ryeguy ).

Мое предложение: если оно не подходит вашему предпочтительному стилю, измените его. Самое главное, если вы собираетесь его разрабатывать и поддерживать, это то, что вы можете работать с ним комфортно и эффективно.

2 голосов
/ 15 апреля 2010

PHP - это очень фрагментированное сообщество без "стандартного" способа работы. Тем не менее, кажется, что пример pageheader.inc, который вы разместили, может быть упрощен. Код в верхней части не приносит вам пользы. Одного этого будет достаточно:

<html>
<head>
<title><?=@$title?></title>
</head>

Если вы ищете какое-то направление по архитектуре и передовым методам, я настоятельно рекомендую проверить популярную среду PHP, такую ​​как Codeigniter или Kohana.

1 голос
/ 15 апреля 2010

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

0 голосов
/ 16 апреля 2010

Возможно, вы захотите взглянуть на эту статью на oreilly.com:

Понимание MVC в PHP

0 голосов
/ 16 апреля 2010

Я часто использовал этот стиль на простых сайтах, таких как сайты с 5-10-страничными брошюрами, где мне нужен централизованный код, например создание меню и заголовков страниц из нескольких переменных, но я не хочу полноценного MVC структура, как это будет излишним.

...