Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для DJZT
24 / 3 / 1
Регистрация: 21.12.2011
Сообщений: 151

CI - использование собственных классов

03.03.2014, 11:21. Показов 564. Ответов 2
Метки ci (Все метки)

Студворк — интернет-сервис помощи студентам
Делал небольшой проект для обучения себе на ci. Всё хорошо. Использовал массивы и не более. Появилось слишком много повторяющегося кода, да и в голове начало всплывать ,что это всё было бы лучше сделать на ООП.
Озадачился. Почитал Создание библиотек Ничего не понял. Загрузка объекта идёт в $this.
Например. Хочу вывести какой либо список. Написал класс Myclass. В нем есть метод вывода свойств и тд в строчку(теги и всё такое). далее в контроллере провожу инициализацию. Получаю в цикле массив объектов класса Myclass и потом отправляю их в вид.

Вопрос в следующем. Когда я провожу инициализацию конструкцией
PHP
1
$this->load->library('myclass');
то обращаться к данному объекту я могу только так
PHP
1
$this->myclass->myclass_function();
Вправьте мозги. Как мне получить массив из множества таких объектов?
Делать тупо
PHP
1
$mass[] = $this->myslass
после полного заполнения его свойств(в конструкторе соответственно)?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2014, 11:21
Ответы с готовыми решениями:

Реализация собственных классов
Разработать прогнрамму, демонстрирующую работу с объектами 2х типов: Triangle(треугольник) и Quadrate(квадрат ).Каждый объект должен иметь...

Подключение собственных классов
Здравствуйте, пользователи форума. Долго искал в интернет ответ на свой вопрос, но ничего так и не заработало. тему...

BindingSource и коллекция собственных классов
Раньше когда использовал DataTable в качестве свойства DataSource у BindingSource работала сортировка и фильтрация, сейчас использую...

2
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 29
03.03.2014, 18:57
Может так,я тоже новичок в CI
$this->array['data'] = $this->myclass->myclass_function();
и соответственно в виде
$this->array['data']->property;
вызывать так
0
 Аватар для DJZT
24 / 3 / 1
Регистрация: 21.12.2011
Сообщений: 151
04.03.2014, 10:21  [ТС]
Но мне же надо не один объект, а целый список их. Например массив новостей

Добавлено через 10 минут
Вот что получилось. пишет ошибку

Severity: Notice
Message: Undefined property: News::$ONews
Filename: libraries/LNews.php
Line Number: 22

ONews - объект одной новости.
LNews - объект с списком новостей.
News - контроллер

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
 
class LNews {
    public $CI          = 0; 
    public $count_all   = 0;            // Всего новостей в таблице
    public $count       = 0;            // Новостей в данной выборке
    public $data        = array();      // Массив новостей
 
 
    // Конструктор по странице
    // $page - номер страницы с новостями
    function __construct($params){ 
 
        $this->CI =& get_instance();
 
        if(isset($params['page'])){
            $num = 30;
            $offset = $params['page']*$num; // Смещение позиции выборки новостей
 
            for ($i=0; $i < $num; $i++) { 
                $this->CI->load->library('ONews', array('offset' => $offset + $i));
                $this->date['news'] = $this->CI->ONews;
            }
 
        }elseif(isset($params['list_id'])){
            foreach ($params['list_id'] as $key => $value) {
                $this->CI->load->libraries('ONews', array('id' => $value));
                $this->data['news'] = $this->CI->ONews;
            }
        }
        $this->get_count();
    }
 
    public function get_count_all(){
        $this->count_all = $this->CI->db->count_all('news');
    }
 
    public function get_count(){
        $this->count = count($this->data);
    }
 
    public function out_all($arr_field, $tag = 'ul', $add_class = true){
        $str = '';
        $str .= '<'.$tag.' '.($add_class)?'class="list-news"':'';
        $str .= '>';
        foreach ($data as $key => $value) {
            $str  .= $value->out($arr_field, 'li', true);   
        }
        $str  .= '</'.$tag.'>';
        return $str;
    }
}
 
/* End of file LNews.php */
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.03.2014, 10:21
Помогаю со студенческими работами здесь

Приведение типов собственных классов
Добрый день, пусть есть класс class Line { public int x1,x2 ; public int y1,y2 ; Line (int X1,int X2, int...

Vector собственных классов в собственном классе
Создал собственный класс myProject, для использования в MyForm. В классе myProject нужен vector&lt;кооперативов&gt;, но я не знаю как...

Написать программу обработки файла, состоящего из собственных классов
Помогите пожалуйста решить пару задачек на c#. 1)Описать массив классов (ArrayList), представленных в задании. Обеспечить: -вывод...

Как правильно перегрузить операторы для собственных классов?
Операторы перегрузки не выполняются. Мне кажется, я не правильно передаю объекты класса в функцию. Прошу обратить внимание на файл ...

Импорт собственных классов и ошибки 1046, 1180, 1172
Всем доброго времени суток!!! Есть папка с именем cellAndRoad. Внутри папки cellAndRoad находится fla файл и другая папка с именем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru