объединить / включить различные файлы PHP в один файл PHP - PullRequest
0 голосов
/ 24 декабря 2010

Привет, друзья! Я новичок в программировании и очень плохо знаком с PHP.Я ищу помощь в написании небольшой функции PHP.Ситуация выглядит так:

Я использую Joomla, и у меня есть шаблон, который находится в БЛОКАХ, например:

header.php
topmodules.php
mainbody.php
bottommodules.php
footer.php

Все мои блоки размещены в каталоге (/ layouts / blocks).Все эти блоки должны быть объединены в основном файле Index.php.

Функция, которую я знаю, выглядит примерно так:

<?php
function get_header(){
  require_once(TEMPLATEPATH.'/layouts/blocks/header.php');
}
?>

И затем вызывается так:

<?php get_header(); ?>

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

<?php require(YOURBASEPATH . DS .'layouts'. DS .'blocks'. DS . "header.php"); ?>

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

<?php $this->getBlock('header') ?>
<?php $this->getBlock('topmodules') ?>
<?php $this->getBlock('mainbody') ?>
<?php $this->getBlock('bottommodules') ?>
<?php $this->getBlock('footer') ?>

Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 24 декабря 2010
function get_header_improved($s){
  require_once(TEMPLATEPATH.'/layouts/blocks/' . $s . '.php');
}

<?php get_header_improved('header') ?>
<?php get_header_improved('topmodules') ?>
<?php get_header_improved('mainbody') ?>
<?php get_header_improved('bottommodules') ?>
<?php get_header_improved('footer') ?>

Я не пробовал, но это должно работать.

1 голос
/ 24 декабря 2010

Вам просто нужно добавить параметр к вашей функции:

function getBlock($filename){
  require_once(YOURBASEPATH . DS . 'layouts' .DS . 'blocks'. DS . $filename .'.php');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...