Как получить переменную одного класса в другом

Вопросы об установке, настройке и работе самого фреймворка

Как получить переменную одного класса в другом

Сообщение sure123 » 11 мар 2010, 14:06

Есть 2 класса в библиотеке

ClassOne
ClassTwo

все они грузятся через config autoload, потом во вьюве легко могу взять например $this->classtwo->printSomething();

но мне надо в методе класса ClassOne, получить паблик массив класса ClassTwo

и там уже не работает внутри класса ClassOne, echo $this->classtwo->someVar;

как правильно делать?
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение sure123 » 11 мар 2010, 14:11

как вообще создать объект чужого класса в классе?
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение Artem » 11 мар 2010, 14:27

http://code-igniter.ru/user_guide/general/creating_libraries.html
раздел - "Использование ресурсов CodeIgniter в вашей библиотеке"
Artem
 
Сообщения: 61
Зарегистрирован: 19 фев 2009, 17:49

Re: Как получить переменную одного класса в другом

Сообщение sure123 » 11 мар 2010, 14:48

я это читал, даже несколько раз, так и думал, что где-то в этом, но все равно не понял
Объсяните, пожалуйста, поконкретнее
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение sure123 » 11 мар 2010, 17:49

всё понял, через $CI->
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение snake.nf » 11 мар 2010, 17:49

sure123 писал(а):Есть 2 класса в библиотеке
ClassOne
ClassTwo
все они грузятся через config autoload, потом во вьюве легко могу взять например $this->classtwo->printSomething();
но мне надо в методе класса ClassOne, получить паблик массив класса ClassTwo
и там уже не работает внутри класса ClassOne, echo $this->classtwo->someVar;
как правильно делать?


Код: Выделить всё
$this->class_one->some_method($this->class_two->public_array); 
Аватара пользователя
snake.nf
 
Сообщения: 40
Зарегистрирован: 16 фев 2010, 11:36

Re: Как получить переменную одного класса в другом

Сообщение sure123 » 11 мар 2010, 18:13

спасибо
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение radioheaded » 11 мар 2010, 18:30

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

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

Корректно поставить задачу — решить полпроблемы.
radioheaded
 

Re: Как получить переменную одного класса в другом

Сообщение snake.nf » 12 мар 2010, 07:10

По моему, всё таки, через синглтон CI передавать данные не кошерно. Тем более, когда эти данные не являются данными системными.
Аватара пользователя
snake.nf
 
Сообщения: 40
Зарегистрирован: 16 фев 2010, 11:36

Re: Как получить переменную одного класса в другом

Сообщение sure123 » 12 мар 2010, 12:13

Спасибо, тогда другой вопрос, как лучше передавать данные?

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

И есть другой класс, который уже все эти данные распределяет в своих методах. Во вьюве дергаются методы этого ДругогоКласса, который обрабатывает региональные данные.


т.е. суть таже, надо класс, который будет "инклудить" откуда-то данные
sure123
 
Сообщения: 10
Зарегистрирован: 08 мар 2010, 16:47

Re: Как получить переменную одного класса в другом

Сообщение Be3 » 12 мар 2010, 12:38

Стандартный механизм конфигов вам не подойдет? Я его использовал для мультисайтовости.
Аватара пользователя
Be3
Киборг убийца
 
Сообщения: 285
Зарегистрирован: 02 июл 2008, 06:25
Откуда: NSK


Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1