ФорумПрограммированиеPHP для идиотовPHP и ООП → передать параметр в конструктор модели (code igniter) или растолкуйте правильно

передать параметр в конструктор модели (code igniter) или растолкуйте правильно

  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 17 сентября 2012 г. 8:51

    Собственно сабж. Смотрю данный фреймворк.
    Основная единица предметной области — устройство.
    Создал модель Device_model. По логике (как я понимаю), каждый объект этой модели в моём приложении будет конкретным устройством. Тогда хотелось бы при загрузке передавать идентификатор или уникальное имя устройства. Но загрузчик модели не предоставляет такой возможности.
    Или же я не так понимаю модель? Где мне тогда замутить класс Device со всеми его пропертями и методами? Как заюзать грамотно?
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 17 сентября 2012 г. 12:23, спустя 3 часа 31 минуту 9 секунд

    Расширь стандартный класс модели.
    Спустя 123 сек.
    А хотя лучше перепиши лоадер, в том месте где грузятся модели.
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 17 сентября 2012 г. 14:33, спустя 2 часа 10 минут 17 секунд

    indeego, в рамках данного фрейморка это лучшее решение? Сам с ним недавно работаю (как и с MVC вообще).
    да, и про MVC ещё хотелось бы определиться: вот есть объект Device и его конкретные всегдашние атрибуты и методы (вроде ORM это называет — данная модель будет знать какие атрибуты как крудятся в базе). А также понадобятся методы для пакетной работы со множеством объектов типа Device, и тогда выходит зря я хочу инициализировать модель к конкретным id? Как это увязать с моделями на примере CI?
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 18 сентября 2012 г. 3:14, спустя 12 часов 41 минуту 30 секунд

    не, там нет такого. походу переписывать загрузчик надо, добавить параметр в load->model(), и пихать туда параметр для конструктора.
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 18 сентября 2012 г. 7:20, спустя 4 часа 5 минут 22 секунды

    s_s, Вот я и говорю запили MY_Loader.php и сунь в папку своего аппликейшена.
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 18 сентября 2012 г. 8:02, спустя 42 минуты 33 секунды

    ОК, спасибо, indeego!
    А кто-нибудь юзал ORM Propel? Или какой ORM посоветуете использовать (или не использовать) в модели? Я ведь верно понимаю, что объект класса модели – это по сути ООП-шное отображение предмета со всеми свойственными ему атрибутами и методами из предметной области? А для облегчения работы со значениями атрибутов (которые хранятся в БД) и нужно ORM тут.

    PS: Мужики, ну потерпите пожалуйста немного, очень в MVC въехать хочется)))
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 19 сентября 2012 г. 8:57, спустя 1 день 55 минут

    1). Ну давай, ебани реализацию MVC из функций, без наследования классов, создания объектов, инкапсуляции, хотелось бы посмотреть.
    2). Сам хуй.
    3). Если действительно интересно, то можешь сравнить:
    http://ru.wikipedia.org/wiki/ActiveRecord
    и
    http://codeigniter.su/database/active_record.html
    в CI выходят те же запросы, только через жопу, а не объект = значение из БД. А когда есть возможность заюзать что-то вроде

    <?php
    /* initialize Propel, etc. */

    $author = new Author();
    $author->setFirstName('Jane');
    $author->setLastName('Austen');
    $author->save();

    echo $author->getId(); // 1
    echo $author->getFirstName(); // 'Jane'
    echo $author->getLastName(); // 'Austen'

    а не тучу самописных методов вроде

    public function getFirstName(){
    $query = $this->db->get_where('autors', array('id' => $this->id));
    $data = $query->result() ;
    return $this->FirstName = $data->FirstName;
    }

    которые один фиг имитируют работу того же ORM, которого в CI нет.
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 19 сентября 2012 г. 20:53, спустя 11 часов 56 минут 4 секунды

    s_s, переходи на джангу, там ваще нихуя писать не надо никаких методов в моделях, тупо все уже придумано. Но в любой момент можешь по своему желанию модернизировать.
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 20 сентября 2012 г. 2:12, спустя 5 часов 19 минут 2 секунды


    s_s, переходи на джангу, там ваще нихуя писать не надо никаких методов в моделях, тупо все уже придумано. Но в любой момент можешь по своему желанию модернизировать.

    звучит конечно заманчиво, но блин, это же надо сначала синтаксис питона учить, а потом уже с джангой связываться. хотя может оно того и стоит.
    ну блин, да и похапе это ж похапе, такое родное и ни с чем не сравнимое))
  • indeego

    Сообщения: 125 Репутация: N Группа: Кто попало

    Spritz 20 сентября 2012 г. 3:48, спустя 1 час 35 минут 9 секунд

    s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая. Я вот уже решил что буду переходить на питон. А если по теме, есть такая штука - sparks называется. Это наворот для кодыгнайтера. http://getsparks.org/ вот тут подробности. И вот тебе уже готовый ОРМ http://getsparks.org/packages/redbean/versions/HEAD/show
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 20 сентября 2012 г. 5:21, спустя 1 час 33 минуты 12 секунд


    s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая. Я вот уже решил что буду переходить на питон. А если по теме, есть такая штука - sparks называется. Это наворот для кодыгнайтера. http://getsparks.org/ вот тут подробности. И вот тебе уже готовый ОРМ http://getsparks.org/packages/redbean/versions/HEAD/show

    "Кодь меньше, бухай больше", бугага)) Не знал про эту штуку.
    А вот redbean похоже в тему, спасибо огромное! Похоже то что надо!
  • Winston

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 20 сентября 2012 г. 8:23, спустя 3 часа 2 минуты 13 секунд


    1). Ну давай, ебани реализацию MVC из функций, без наследования классов, создания объектов, инкапсуляции, хотелось бы посмотреть.

    MVC это не наследие классов и создание объектов, это скорее схема разделения логики, ее можно реализовать и процедурно…
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 20 сентября 2012 г. 9:38, спустя 1 час 14 минут 28 секунд


    s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая.
    Ну на самом деле не все так безоблачно, ибо админка:
    1. Древняя, не аджаксовая, вкусных виджетов мало, имеет ограничения.
    2. SQL запросов очень много, при сложных задачах изрядно тормозит.
    3. Ну и как всегда, когда надо что-то нестандартное (а в серьезных проектах всегда все нестандартное) - допиливание соизмеримо по трудозатратам с разработкой всего самому.
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz 20 сентября 2012 г. 9:56, спустя 18 минут 19 секунд

    AlexB, идеального ничего не бывает, это понятно. Любое решение компромисс между качественно/быстро/недорого.
    За конкретные минусы спасибо, буду иметь в виду.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!