Аватар для DJZT
24 / 3 / 1
Регистрация: 21.12.2011
Сообщений: 151

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

03.03.2014, 11:21. Показов 611. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru