класс новичка php - PullRequest
       2

класс новичка php

1 голос
/ 17 августа 2010
class Theme
{
    function __construct()
    {

    }

    function load( $folder, $file )
    {
        $theme_path = ROOTPATH . '/theme/' . $folder . '/' . $file . '.php';
        require_once($theme_path);
        return TRUE;
    }
}

на index.php

<?php

require class.theme.php
$theme = new Theme;
$theme->load('site','index');
?>

на моем сайте / index.php

<?php 
// to work i need another $theme = new theme; why can i do this ? can i make 
it make it work twice or more inside the function load ?   
$theme->load('site','header');
$theme->load('site','footer');
?>

как-то нужно $ theme = new Theme; снова на сайте / index.php

есть ли другой способ заставить его работать? возможно, мой класс не очень хорош или алгоритм не работает.

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

Ответы [ 4 ]

2 голосов
/ 17 августа 2010

Мы не знаем взаимосвязи между вашими двумя .php-файлами, поэтому будет сложно ответить.

Если вы определите $ theme как новую тему, правила области действия по-прежнему будут применяться: вы используете только определение / инстанцированиедействителен по своему объему.У вас не будет глобального объекта темы.Независимо от любого класса / объекта дизайна.

1 голос
/ 17 августа 2010

Объект "$ theme" не сохраняется в нескольких файлах, поэтому при запросе "site / index.php" ваш объект из "index.php" исчезает ...

или я неправильно понял ваш вопрос:)

0 голосов
/ 18 августа 2010
class Theme
{
    function __construct()
    {

    }

    function load( $folder, $file )
    {
        $theme_path = ROOTPATH . '/theme/' . $folder . '/' . $file . '.php';
        return $theme_path;
    }
}

на index.php

<?php
require class.theme.php
$theme = new Theme;
require_once $theme->load('site','index');
?>

на моем сайте / index.php

<?php 
// to work i need another $theme = new theme; why can i do this ? can i make 
it make it work twice or more inside the function load ?   
require_once $theme->load('site','header');
require_once $theme->load('site','footer');
?>

пока что все получилось, спасибо, ребята.

0 голосов
/ 17 августа 2010

Попробуйте сделать функцию загрузки общедоступной:

class Theme
{
    function __construct()
    {

    }

    public static function load( $folder, $file )
    {
        $theme_path = ROOTPATH . '/theme/' . $folder . '/' . $file . '.php';
        require_once($theme_path);
        return TRUE;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...