2014-01-23 1 views
0

Я реализовал Codeigniter HMVC, который отлично работает. Затем я расширяю MX_Controller с помощью MY_Controller, чтобы поделиться функциональностью и свойствами между всеми моими модулями и сохранить мой код DRY.Не удается получить доступ к общедоступным свойствам из MY_controller при расширении с MX_Controller в HMVC

Но я заметил, что при расширении MY_Controller от MX_Controller Я больше не могу обращаться к публичным ресурсам от MY_Controller на любом из расширенных дочерних классов.

Некоторые примеры кода:

class MY_Controller extends MX_Controller { 

    public $variable; 

    function __contruct() 
    { 
     parent::__contruct(); 
     $this->variable = 'Foo'; 
    } 
} 

Затем на любом контроллере, который я простираться от MY_Controller:

class Foo extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function someFunction() 
    { 
     var_dump($this->variable); 
    } 

} 

Когда я пытаюсь получить доступ к государственной собственности $variable в любом контроллере ребенка я получаю Null или пустой строка.

Я искал высоко и низко для этого, не повезло, мое единственное предположение - проблема с HMVC MX_Controller. Есть идеи?

+0

Есть ли орфографическая ошибка в первом конструкторе? '__contruct()' –

+0

Да, Ян Берк, вот и все. Я заметил проблему в тот же день после получения ошибки PHP об этом. Я починил это. То, что я никогда не понимал, как это может происходить в течение нескольких дней, не вырвав php-ошибку, как это было в конце. – Cabreran

ответ

0

После нескольких часов проверки это была простая ошибка от моего имени. Я ошибся с именем parent :: __ contruct на MY_Controller, он должен быть parent: __ construct.

Смежные вопросы