crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Вопросы по основам PHP
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2012, 17:40
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Есть строка в коде:
<?php
class ControllerModuleCategory extends Controller {
    private $error = array();
    
    public function index() {
        $this->model_setting_setting->editSetting('category', $this->request->post); // <------------------
    }
}
?>

1) что такое $this в PHP?
2) что такое model_setting_setting?


---
предположения:
1) указатель/ссылка на объект (экземпляр класса) ControllerModuleCategory;
2) член (поле) класса ControllerModuleCategory, однако я не вижу чтоб его где-то объявили, в базовом тоже не вижу.

как это всё работает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 26.12.2012, 21:27
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


я нашла код этого OpenCart в сети. это динамически создаваемый член класса (я же говорю, что это не классы нифига, а, скорее, массивы. раньше они и были массивами, по типу javascript, а потом их стали делать более похожими на классы).
в общем, это динамический элемент, грузится он в функции
     public function model($model) {
        $file  = DIR_APPLICATION . 'model/' . $model . '.php';
        $class = 'Model' . preg_replace('/[^a-zA-Z0-9]/', '', $model);
        
        if (file_exists($file)) {
            include_once($file);
            
            $this->registry->set('model_' . str_replace('/', '_', $model), new $class($this->registry));
        } else {
            exit('Error: Could not load model ' . $model . '!');
        }
    }

в файле system/engine/loader.php.
конкретно тут он грузит какие-то файлы настроек из каталога model/$model.php, а уж что там в вызове за $model - это надо смотреть на месте.

в случае model_setting_setting это, скорее всего, файл model/setting/setting.php. там вызов editSetting - запрос к базе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.12.2024, 5:24