Код Resuable HTML UI элементы PHP - PullRequest
3 голосов
/ 20 марта 2012

Я новичок в PHP и в настоящее время создаю веб-приложение на PHP для назначения в университете. Во время разработки я понял, что многие элементы в пользовательском интерфейсе копируются в разных разделах моего приложения. Например, у меня может быть кнопка гиперссылки на странице клиентов под названием «Новый клиент» (<a class="bigbutton" href=".......">New Client</a>) и другая кнопка гиперссылки на странице проектов под названием «Новый проект» (<a "bigbutton" href=".......">New Project</a>).

Обычно я мог бы просто скопировать HTML-код, который создает кнопки на странице клиентов, и изменить содержимое в соответствии с кнопкой «Новый проект» на странице проектов. Теперь, если бы я преобразовал кнопку с гиперссылкой в ​​тег, мне пришлось бы перейти к каждому экземпляру этой конкретной кнопки, чтобы заменить тег на тег, и если эта кнопка существует на очень многих страницах, то обновление будет занимать много времени.

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

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

Любые подсказки, указатели или ресурсы были бы очень полезны и оценены.

Спасибо, ребята.

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Вы можете создавать функции PHP, которые отображают HTML при вызове, опционально, включая некоторые элементы конфигурации, например,

function make_button($id, $label) {
    echo '<button id="'.$id.'">'.$label.'</button>';
}

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

На ваше усмотрение. Также хорошо делать небольшие функции, которые можно использовать в более крупных функциях, таких как:

function make_buttons_from array($array) {
    foreach ($array as $id => $label) {
        $this->make_button($id, $label);
    }
}

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

1 голос
/ 20 марта 2012

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

Если у вас есть изменение общего элемента, вы просто переходите к функции и меняете ее, и таким образом она копируется на все страницы.

...