Invis1ble
7.03.2013 - 01:36
Игорь_Vasinsky
7.03.2013 - 01:36
запутал.
если модель - это модель работы с данными - т.е. модель говорит контроллеру - как эти данные обработать - то на примере "А точно это помидоры?" - почему нет аналогии "Ух ты... в какой ящик то?" ?
Инвиз, понял тебя.
меня просто мучает вопрос из своего опыта - когда модель расширяет базовый контроллер.
Получается он на то и базовый так как в нём есть основные решения задач которые должны решаться.
вот и получается что модели расширяют функционал базового контроллера + контроллеры модулей его тоже - просто расширяют.
я пока вижу 2 применения базовому контроллеру
1. коннект к БД
2. роутер
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Скажем так Игорь умеет только принимать заказы на помидоры, а есть отдел фруктов, Игоря туда не посадишь например потому, что Петя ничего не понимает в фруктах. Тогда Игорь назначает начальником своего сына Виктора, который знает Катю специалиста по фруктам, так-же Виктор знаком с Петей.
Игорь_Vasinsky
7.03.2013 - 01:46
:lol: добил.
берём сифонию - модель
<?php
function open_database_connection()
{
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
return $link;
}
function close_database_connection($link)
{
mysql_close($link);
}
function get_all_posts()
{
$link = open_database_connection();
$result = mysql_query('SELECT id, title FROM post', $link);
$posts = array();
while ($row = mysql_fetch_assoc($result)) {
$posts[] = $row;
}
close_database_connection($link);
return $posts;
}
вот будет у меня 10 моделей к 10 модулям.
на кой мне в каждой модели делать коннект и разрыв связи к БД - я же могу просто в классе базового контроллера создать эти методы и потом наследовться от него моделями? (т.е. не бфзовая модель - а базовый контроллер) - такой подход не будет противоречить MVC?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
7.03.2013 - 01:51
Цитата (Игорь_Vasinsky @ 6.03.2013 - 23:46) |
:lol: добил.
берём сифонию - модель
<?php
function open_database_connection() { $link = mysql_connect('localhost', 'myuser', 'mypassword'); mysql_select_db('blog_db', $link);
return $link; }
function close_database_connection($link) { mysql_close($link); }
function get_all_posts() { $link = open_database_connection();
$result = mysql_query('SELECT id, title FROM post', $link); $posts = array(); while ($row = mysql_fetch_assoc($result)) { $posts[] = $row; } close_database_connection($link);
return $posts; }
вот будет у меня 10 моделей к 10 модулям.
на кой мне в каждой модели делать коннект и разрыв связи к БД - я же могу просто в классе базового контроллера создать эти методы и потом наследовться от него моделями? |
это вообще-то учебный код, прочти заголовок страницы
Symfony2 versus Flat PHPв данном случае, этот код - Flat PHP
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Игорь_Vasinsky
7.03.2013 - 01:55
да хоть перл)) вопрос то остаётся вопросом
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
7.03.2013 - 01:59
ответ: модели не должны наследоваться от контроллеров, также как мухи не должны быть частью котлет.
Но если ты делашь котлеты из мух - то пожалуйста
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Цитата |
я же могу просто в классе базового контроллера создать эти методы и потом наследовться от него моделями? |
Для этого создаем базовую модель, в к ней подключаем адаптер, можно и без него, если будет только mysql в ней базовые операции, потом наследуем новую нашу модель от базовой модели со всеми нужными фишками.
Пример Вася умеет копать у него родился Петя который умеет копать и землю выгребать, у пети родился Миша который хочет закопать клад, Миша сознательно знает, что умеет закапывать клады, но он не вникает как это было устроено у его предков, он просто говорит: клад закопайся и клад сам отрывает яму Миша кладет туда клад и он землей засыпается
Игорь_Vasinsky
7.03.2013 - 02:06
понял. базовая модель.
блин - смотришь известные CMS и башка хернёй забивается.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Кстати коннектор к базе должен быть статичным классом а в базовой модели его нужно вызывать как статичный класс, некоторые делают синглтон, но нахрена козе боян? Если можно статичный класс забабахать.
Тогда у нас будет 1 коннект на все
Игорь_Vasinsky
7.03.2013 - 02:25
во - спасиб.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Не пытайтесь найти истину в MVC. Как только вы решите, что все, вот теперь то я все понял, свалится какой-нибудь новый код, где все не так. И останется два пути:
1. Пересматривать своё мировозрение на этот счет.
2. Кричать, что все говнокодеры, а я Дартаньян.
Суть проста - MVC придуман не для веб и тем более не для PHP. И не сильно то для них подходит. А посему у него масса реализаций и толкований и совершенно отсутствуют стандарты.
И это на самом деле замечательно ИМХО, ибо ничто так не радует программиста, как неортогональность. А попытки загнать все в рамки и погубить на корню велосипедостроительную промышленность оставьте кодерам.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
по поводу коннекта вот неплохая статья:
http://lifeexample.ru/php-primeryi-skripto...ml#comment-6825
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Игорь_Vasinsky
7.03.2013 - 11:49
Цитата |
А попытки загнать все в рамки |
ну как бы рамки можно рассматривать как шаблон.
т.е. вот - видишь сколько человек мне сказало что - модель не должна знать что там с данными для вывода - моё представление противоречит этому.
тут я за большинство - да и уже сам понял что такое модель - и поэтому всё становиться очень даже логичным.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
7.03.2013 - 11:55
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.