Помогите с занятиями в php - PullRequest
       12

Помогите с занятиями в php

0 голосов
/ 31 октября 2009
class Controller {

    protected $_controller;
    protected $_action;
    protected $_template;

    public $doNotRenderHeader;
    public $render;

    function __construct($controller, $action) {

        $this->_controller = ucfirst($controller);
        $this->_action = $action;
        $model = ucfirst($controller);/* Conecting the model  class*/
        $this->doNotRenderHeader = 0;
        $this->render = 1;
        $modelName = ucfirst($model).'Model';
        new $modelName;
        $this->_template = new Template($controller,$action);

    }

    function set($name,$value) {
        $this->_template->set($name,$value);
    }


    function __destruct() {
        if ($this->render) {
            $this->_template->render($this->doNotRenderHeader);
        }
    }

}

Я новичок в работе с классами, я не так много понимаю, я хочу реализовать и изучить работу с классами на этом примере структуры mvc, но у меня есть проблема с набором функций. Сохранение в массиве некоторой информации, а затем отправка внутри шаблона класса, когда я использую внутреннюю функцию __construct, которую я отправляю с функцией set (), которая выполняет функцию сохранения данных в объект $ this_template, все работает нормально, но когда я создание новой функции в этом или расширенном классе не работает ...

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

class Template {
    protected $variables = array();


function set($name,$value) {
    $this->variables[$name] = $value;
}


    function render(){
        extract($this->variables); print_r($this->variables);
    }
}

Мне нужно с функцией set () из Class Controller экспортировать данные внутри класса Template, и почему при создании функции внутри Class Controller пример:

function functionName() {
   $data=array('a','b');
   $this->set('data',$data);
}

и внутри class Template, я ставлю print_r($this->variables);, а массив пуст

1 Ответ

0 голосов
/ 01 ноября 2009
__construct($controller, $action) {

        $this->_controller = ucfirst($controller);
...}

Какой тип переменной $ controller? это строка, возможно? и должно ли оно называться "controller_name"?

$model = ucfirst($controller);/* Conecting the model  class*/
...
$modelName = ucfirst($model).'Model';

Разве не самая избыточная во второй строке?

new $modelName;

должно быть

$this->somevariable = new Someclass($modelName);

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

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