Как передать переменные / функции в функцию класса для печати заголовка макета? - PullRequest
1 голос
/ 12 октября 2009

У меня есть класс Page (), который я могу использовать для печати заголовка (макета).

С помощью функции loadHeader ($ title) я хочу иметь возможность печатать ее на всех своих страницах. Фактический код для заголовка хранится в header.inc.php.

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

Класс выглядит примерно так (разработан для предотвращения путаницы):

class Page{
    //All vars here
    function __construct(){
        //constructor code
    }
    function loadHeader(){
        $header = file_get_contents("header.inc.php");
        //Some editing of the parsed $header here

        //Here I want certain variables to be passed along 
        return $header;
    }
}

Точный код, который я хочу передать вместе с функцией loadHeader ():

session_start();
include("db.class.php"); //File which contains the db_class
$db = new db_class;
$db->connect();

Попытался сделать это с помощью eval () и heredoc в функции loadHeader (), но я не могу заставить это работать. Я в отчаянии!

В заключение приведу пример того, как я хочу, чтобы мои страницы работали:

<?php
    include("page.class.php");
    $page = new page("Friends");
    $page->loadHeader();
?>
Website content with database manipulation

1 Ответ

1 голос
/ 12 октября 2009

Почему бы вам просто не поместить этот код в конструктор страниц?

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

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

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