[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mvc - не cmv
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
Игорь_Vasinsky
запутал.

если модель - это модель работы с данными - т.е. модель говорит контроллеру - как эти данные обработать - то на примере "А точно это помидоры?" - почему нет аналогии "Ух ты... в какой ящик то?" ?

Инвиз, понял тебя.

меня просто мучает вопрос из своего опыта - когда модель расширяет базовый контроллер.

Получается он на то и базовый так как в нём есть основные решения задач которые должны решаться.

вот и получается что модели расширяют функционал базового контроллера + контроллеры модулей его тоже - просто расширяют.

я пока вижу 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
I++
Скажем так Игорь умеет только принимать заказы на помидоры, а есть отдел фруктов, Игоря туда не посадишь например потому, что Петя ничего не понимает в фруктах. Тогда Игорь назначает начальником своего сына Виктора, который знает Катю специалиста по фруктам, так-же Виктор знаком с Петей.
Игорь_Vasinsky
:lol: добил.

берём сифонию - модель

<?php
// model.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
Цитата (Игорь_Vasinsky @ 6.03.2013 - 23:46)
:lol: добил.

берём сифонию - модель

<?php
// model.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
да хоть перл)) вопрос то остаётся вопросом

_____________
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
ответ: модели не должны наследоваться от контроллеров, также как мухи не должны быть частью котлет.
Но если ты делашь котлеты из мух - то пожалуйста wink.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

I++
Цитата
я же могу просто в классе базового контроллера создать эти методы и потом наследовться от него моделями?


Для этого создаем базовую модель, в к ней подключаем адаптер, можно и без него, если будет только mysql в ней базовые операции, потом наследуем новую нашу модель от базовой модели со всеми нужными фишками.

Пример Вася умеет копать у него родился Петя который умеет копать и землю выгребать, у пети родился Миша который хочет закопать клад, Миша сознательно знает, что умеет закапывать клады, но он не вникает как это было устроено у его предков, он просто говорит: клад закопайся и клад сам отрывает яму Миша кладет туда клад и он землей засыпается smile.gif
Игорь_Vasinsky
понял. базовая модель.

блин - смотришь известные 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
I++
Кстати коннектор к базе должен быть статичным классом а в базовой модели его нужно вызывать как статичный класс, некоторые делают синглтон, но нахрена козе боян? Если можно статичный класс забабахать.

Тогда у нас будет 1 коннект на все
Игорь_Vasinsky
во - спасиб.

_____________
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
twin
Не пытайтесь найти истину в MVC. Как только вы решите, что все, вот теперь то я все понял, свалится какой-нибудь новый код, где все не так. И останется два пути:
1. Пересматривать своё мировозрение на этот счет.
2. Кричать, что все говнокодеры, а я Дартаньян.

Суть проста - MVC придуман не для веб и тем более не для PHP. И не сильно то для них подходит. А посему у него масса реализаций и толкований и совершенно отсутствуют стандарты.

И это на самом деле замечательно ИМХО, ибо ничто так не радует программиста, как неортогональность. А попытки загнать все в рамки и погубить на корню велосипедостроительную промышленность оставьте кодерам.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
GET
по поводу коннекта вот неплохая статья:

http://lifeexample.ru/php-primeryi-skripto...ml#comment-6825

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Игорь_Vasinsky
Цитата
А попытки загнать все в рамки

ну как бы рамки можно рассматривать как шаблон.

т.е. вот - видишь сколько человек мне сказало что - модель не должна знать что там с данными для вывода - моё представление противоречит этому.

тут я за большинство - да и уже сам понял что такое модель - и поэтому всё становиться очень даже логичным.

_____________
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
Игорь_Vasinsky
с twin'ом спорить бесполезно smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.