Форум → Программирование → PHP для идиотов → PHP и ООП → передать параметр в конструктор модели (code igniter) или растолкуйте правильно
передать параметр в конструктор модели (code igniter) или растолкуйте правильно
-
Собственно сабж. Смотрю данный фреймворк.
Основная единица предметной области — устройство.
Создал модель Device_model. По логике (как я понимаю), каждый объект этой модели в моём приложении будет конкретным устройством. Тогда хотелось бы при загрузке передавать идентификатор или уникальное имя устройства. Но загрузчик модели не предоставляет такой возможности.
Или же я не так понимаю модель? Где мне тогда замутить класс Device со всеми его пропертями и методами? Как заюзать грамотно? -
17 сентября 2012 г. 20:23, спустя 3 часа 31 минуту 9 секунд
Расширь стандартный класс модели.Спустя 123 сек.А хотя лучше перепиши лоадер, в том месте где грузятся модели. -
17 сентября 2012 г. 22:33, спустя 2 часа 10 минут 17 секунд
indeego, в рамках данного фрейморка это лучшее решение? Сам с ним недавно работаю (как и с MVC вообще).
да, и про MVC ещё хотелось бы определиться: вот есть объект Device и его конкретные всегдашние атрибуты и методы (вроде ORM это называет — данная модель будет знать какие атрибуты как крудятся в базе). А также понадобятся методы для пакетной работы со множеством объектов типа Device, и тогда выходит зря я хочу инициализировать модель к конкретным id? Как это увязать с моделями на примере CI? -
18 сентября 2012 г. 11:14, спустя 12 часов 41 минуту 30 секунд
не, там нет такого. походу переписывать загрузчик надо, добавить параметр в load->model(), и пихать туда параметр для конструктора. -
18 сентября 2012 г. 15:20, спустя 4 часа 5 минут 22 секунды
s_s, Вот я и говорю запили MY_Loader.php и сунь в папку своего аппликейшена. -
18 сентября 2012 г. 16:02, спустя 42 минуты 33 секунды
ОК, спасибо, indeego!
А кто-нибудь юзал ORM Propel? Или какой ORM посоветуете использовать (или не использовать) в модели? Я ведь верно понимаю, что объект класса модели – это по сути ООП-шное отображение предмета со всеми свойственными ему атрибутами и методами из предметной области? А для облегчения работы со значениями атрибутов (которые хранятся в БД) и нужно ORM тут.
PS: Мужики, ну потерпите пожалуйста немного, очень в MVC въехать хочется))) -
19 сентября 2012 г. 16: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 нет. -
20 сентября 2012 г. 4:53, спустя 11 часов 56 минут 4 секунды
s_s, переходи на джангу, там ваще нихуя писать не надо никаких методов в моделях, тупо все уже придумано. Но в любой момент можешь по своему желанию модернизировать. -
20 сентября 2012 г. 10:12, спустя 5 часов 19 минут 2 секунды
s_s, переходи на джангу, там ваще нихуя писать не надо никаких методов в моделях, тупо все уже придумано. Но в любой момент можешь по своему желанию модернизировать.
звучит конечно заманчиво, но блин, это же надо сначала синтаксис питона учить, а потом уже с джангой связываться. хотя может оно того и стоит.
ну блин, да и похапе это ж похапе, такое родное и ни с чем не сравнимое)) -
20 сентября 2012 г. 11:48, спустя 1 час 35 минут 9 секунд
s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая. Я вот уже решил что буду переходить на питон. А если по теме, есть такая штука - sparks называется. Это наворот для кодыгнайтера. http://getsparks.org/ вот тут подробности. И вот тебе уже готовый ОРМ http://getsparks.org/packages/redbean/versions/HEAD/show -
20 сентября 2012 г. 13:21, спустя 1 час 33 минуты 12 секунд
s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая. Я вот уже решил что буду переходить на питон. А если по теме, есть такая штука - sparks называется. Это наворот для кодыгнайтера. http://getsparks.org/ вот тут подробности. И вот тебе уже готовый ОРМ http://getsparks.org/packages/redbean/versions/HEAD/show
"Кодь меньше, бухай больше", бугага)) Не знал про эту штуку.
А вот redbean похоже в тему, спасибо огромное! Похоже то что надо! -
20 сентября 2012 г. 16:23, спустя 3 часа 2 минуты 13 секунд
1). Ну давай, ебани реализацию MVC из функций, без наследования классов, создания объектов, инкапсуляции, хотелось бы посмотреть.
MVC это не наследие классов и создание объектов, это скорее схема разделения логики, ее можно реализовать и процедурно… -
20 сентября 2012 г. 17:38, спустя 1 час 14 минут 28 секунд
Ну на самом деле не все так безоблачно, ибо админка:
s_s, заманчиво не то слово. Там еще и админка автоматом генерится, причем человеческая.
1. Древняя, не аджаксовая, вкусных виджетов мало, имеет ограничения.
2. SQL запросов очень много, при сложных задачах изрядно тормозит.
3. Ну и как всегда, когда надо что-то нестандартное (а в серьезных проектах всегда все нестандартное) - допиливание соизмеримо по трудозатратам с разработкой всего самому. -
20 сентября 2012 г. 17:56, спустя 18 минут 19 секунд
AlexB, идеального ничего не бывает, это понятно. Любое решение компромисс между качественно/быстро/недорого.
За конкретные минусы спасибо, буду иметь в виду.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!