Создание шаблонов с использованием функций для уменьшения избыточности в PHP - PullRequest
0 голосов
/ 02 сентября 2018

Я пишу сайт с нуля для удовольствия (как начинающий веб-разработчик, пришедший из C ++), и я заметил, что многие мои страницы имеют одинаковый код; 95% на самом деле. Поэтому я хотел создать функцию в PHP, чтобы минимизировать избыточный код внутри моего проекта веб-сайта. Аналогично тому, как мы делаем функцию на любом другом языке, c ++, java; и т.д., я хочу сделать функцию, которая передает параметры в вызываемый файл php для записи конкретной веб-страницы.

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

$title = "Example_Title";
$author = "Example_Author";
$date = "January 1, 1999";
$article = "Example_Body";
include('template.php');
setDependencies($title, $author, $date, $article);

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

<?php 
$this_title = "";
$this_author = "";
$this_date = "";
$this_article = "";

function setDependencies($title, $author, $date, $article){
    $this_title = $title;
    $this_author = $author;
    $this_date = $date;
    $this_article = $article;
}
?>

<body>
<p>Written by <?php $this_author ?> on <?php $this_date ?></p>
</body>

Код, «написанный ...» внутри тега body - это просто строка кода, которую я использовал, чтобы увидеть, будет ли это отображаться после вызова (включения), но в итоге он написал «Написано на».

Я понял, что главная проблема с этим заключалась в том, что функция include ('template.php') включала все данные из template.php, а затем выполнила setDependencies (), поэтому вызов функции ничего не сделал.

Я попытался включить template.php дважды, первый для включения setDependencies (), второй для выполнения html, но это дало ошибку, так как он дважды объявил setDependencies, и веб-сайту это не понравилось. Я также попытался создать три файла вместо двух, где я объявил значения title, author, date и article и перенес его во второй файл, где третий файл вызывает его для значений, необходимых в части html, где я затем вызвал его внутри первого файла, но это привело к тому же самому результату ошибки вызова той же функции в миллионы раз.

Любая помощь будет высоко ценится! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...