@phpgeeks

Страница 110 из 8430
Oleg
26.05.2016
06:53:40
не подменяй понятия - модель это и данные в том числе

речь о MVC именно?
есть сомнения?

Кирилл
26.05.2016
06:54:35
не могу уловить суть вашего спора, вот и уточняю)

Google
Andrey
26.05.2016
06:55:32
не могу уловить суть вашего спора, вот и уточняю)
мне вот интересно что такое модель, и что она из себя представляет и почему она и в контроллере тусуется и во вьюшке

)))

именно модель

Oleg
26.05.2016
06:58:08
именно модель
да вообще че она в MVC то забыла проблема в том что ты считаешь моделью одну строчку из таблицы тобишь один экземпляр класса

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

Andrey
26.05.2016
07:00:32
мда

ты мне утверждал что массив является моделью

Oleg
26.05.2016
07:02:22
ты мне утверждал что массив является моделью
так давай развивать класс содержит один массив - модель? зачем делать класс если можно обезличенный массив гонять? от того что я массив не обернул я не могу его моделью назвать? где логика

Andrey
26.05.2016
07:04:40
тут ты прав, логики нет заворачивать массив в класс. с этим никто и не спорит

и он от этого моделью не станет

Oleg
26.05.2016
07:06:09
смысл в том что модель это в первую очередь данные - а вот как ты их носишь это твое дело - хочешь в классе хочешь в массиве, пакете или чемодане - дело твое - но то что ты принес в контроллер - это и есть модель

Кирилл
26.05.2016
07:08:08
Ну например, есть таблица в базе данных Article. Есть у нас и модель соответсвующая Article со всеми аттрибутами и прочим. Есть и ArticleController. В самой модели, методов будет немного, они будут обращаться к б.д. и вытягивать то, что просит метод. А вот все манипуляции над моделями будут производиться именно в контроллере. А во вьюшке же могут быть только экземпляры модели. (уже обработанные в котроллере). Т.е. не "тусуются" модели и там и там:) Во вьюшке - экземпляры, а контроллер создает эти самые экземпляры

Andrey
26.05.2016
07:08:24
"модель это в первую очередь данные" интересно...я думал модель что-то достает из бд, и что-то передает из контроллера...а она оказывается себя по рукам пускает

Google
Andrey
26.05.2016
07:10:29
репозиторий...весь чтоли?

Кирилл
26.05.2016
07:10:58
своими сравнениями вы меня пугаете

Oleg
26.05.2016
07:12:00
так вижу недопонимание - модель в базу не ходит - она наполняется данными с помощью например ORM

Andrey
26.05.2016
07:12:41
что такое orm ?

Oleg
26.05.2016
07:13:19
технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

Кирилл
26.05.2016
07:14:51
напрямую не ходит, естесственно. Класс-модель описывает параметры, которые должен/может содержать экземпляр этой самой модели

Oleg
26.05.2016
07:14:59
Object-Relational Mapping - не слышал? или ты думал что это и есть модель))

напрямую не ходит, естесственно. Класс-модель описывает параметры, которые должен/может содержать экземпляр этой самой модели
лучше расскажи откуда в контроллере данные если в него они не пришли? что значит создает? я про это и говорю что в контроллер пришла модель которую он тоесть контроллер перевернул с ног на голову и отдал вьюшке - модель пришедшая не равна модели ушедшей - что говорит о создании еще одной модели

Кирилл
26.05.2016
07:23:11
Какая еще модель "пришедшая"?)

куда пришедшая?) в контроллер?)

Andrey
26.05.2016
07:24:18
видимо я что-то упустил...или не догоняю...про orm я конечно слышал, и не считаю ее моделью... даже не знаю правильно ли я пишу код...вот пример реализации... модель постов: namespace app\models; use Core\Model; class Posts extends Model { protected $table = 'posts'; }

абстрактная модель точнее подключение orm : namespace Core; abstract class Model { protected $table = ''; public function __construct() { $conf = parse_ini_file('app/config/config.conf'); \ORM::configure(array( 'connection_string' => '' . $conf['driver'] . ':host=' . $conf['host'] . ';dbname=' . $conf['name'] . '', 'username' => $conf['username'], 'password' => $conf['password'] )); \ORM::configure('driver_options', array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); } public function get($id) { return \ORM::for_table($this->table)->find_one($id); } public function getAll() { return \ORM::for_table($this->table)->find_many(); } }

Кирилл
26.05.2016
07:24:47
не существовало модели пока контроллер её не создал, нет никакой "пришедшей". Было только описание будущей модели)

Andrey
26.05.2016
07:25:48
контроллер namespace App\Controllers; use app\models\Posts; use Core\View; class MainController { public function indexAction() { $posts = new Posts(); $view = View::init(); echo $view->render('pages/posts/all.twig', [ 'title' => 'Блог', 'posts' => $posts->getAll() ]); } }

Кирилл
26.05.2016
07:25:50
контроллер создал экземпляр модели, чтобы понятнее было

Andrey
26.05.2016
07:26:23
вид: {% block content %} {% for post in posts %} <h2 class="blog-post-title"><a href="/post/{{ post.id }}">{{ post.title }}</a></h2> <p class="blog-post-meta">{{ post.date | date }}</p> {{ post.content[:150] }} {% endfor %} {% endblock %}

Кирилл
26.05.2016
07:27:00
ну и чего не так в твоем коде то?:)

Andrey
26.05.2016
07:27:13
хз, может я не прав...мне Олег крышу свернул

Google
Oleg
26.05.2016
07:28:31
Основой паттерна является отделение модели данных приложения, его логики и представления данных друг от друга. Таким образом, следуя правилу «разделяй и властвуй», удается строить стройное программное обеспечение, в котором, во-первых, модель не зависит от представления и логики, а во-вторых, пользовательский интерфейс надежно отделен от управляющей логики.

Кирилл
26.05.2016
07:29:51
Да все норм:) Самое главное в MVC это разделять между собой логику модели, контроллера и вьюшки. Модель - описывает будущий экземпляр модели. Контроллер - создает этот самый экземпляр, обрабатывает и возвращает во вьюшку. Вьюшка только использует полученные данные

Oleg
26.05.2016
07:30:07
где тут сказано что модель это не массив? модели данных приложения довольно расплывчатое понятие - это может быть как все данные из базы или одна буква - и в обоих случаях это модель

и именно модель приходит в контороллер

точнее контроллер ее вызывает и она приходит))

Andrey
26.05.2016
07:31:26
class Model { public function get_data() { bla bla bla } }

да это модель и в нее кидаешь массив)

Oleg
26.05.2016
07:32:44
да это модель и в нее кидаешь массив)
вот серьезно - с чего ты взял что массив не может быть моделью в рамках MVC?

Andrey
26.05.2016
07:33:26
точнее в массив данных

и обозвал этот массив данных моделью

Oleg
26.05.2016
07:34:35
с того что ты модель в контроллер запихнул
а куда она по твойму идет из базы? сразу во вьюшку?

Oleg
26.05.2016
07:35:45
модель данных приложения - Это что? мои данные лежат в массиве например

Andrey
26.05.2016
07:36:21
class Model_Portfolio extends Model { public function get_data() { return array( array( 'Year' => '2012', 'Site' => 'http://DunkelBeer.ru', 'Description' => 'Промо-сайт темного пива Dunkel от немецкого производителя Löwenbraü выпускаемого в России пивоваренной компанией "CАН ИнБев".' ), array( 'Year' => '2012', 'Site' => 'http://ZopoMobile.ru', 'Description' => 'Русскоязычный каталог китайских телефонов компании Zopo на базе Android OS и аксессуаров к ним.' ), // todo ); } }

Oleg
26.05.2016
07:36:24
или мои данные это и есть массив

Andrey
26.05.2016
07:36:41
это что?

Oleg
26.05.2016
07:39:13
это что?
вот ты странный - у тебя же не возникает спора что массив это не array - хотя называются по разному показал мне самописный класс у которого имя Модель - что это доказывает? что модель должна только так выглядеть?

Andrey
26.05.2016
07:40:06
идем дальше

Google
Andrey
26.05.2016
07:40:11
class Controller_Portfolio extends Controller { function __construct() { $this->model = new Model_Portfolio(); $this->view = new View(); } function action_index() { $data = $this->model->get_data(); $this->view->generate('portfolio_view.php', 'template_view.php', $data); } }

Кирилл
26.05.2016
07:40:34
а вот

а вот new - и создает экземпляр модели. т.е. $model1 = new Article($id1); $model1->body = "lol"; $model2 = new Articke($id2); $model2->body = "ololo";

Oleg
26.05.2016
07:43:13
идем дальше
я же не против того что из базы данные идут в контроллер а из него во вьюшку вижу и ты не против ты против того чтоб эти данные назвать моделью я интересуюсь почему?

Кирилл
26.05.2016
07:43:58
потому что эти данные не являются экземпляром какой-либо модели

Oleg
26.05.2016
07:44:02
точнее в зависимости от того как эти данные выглядят - то они модель а то и нет - в общем мутно

Andrey
26.05.2016
07:44:22
модель забирает данные из бд, как она может быть данными?

Кирилл
26.05.2016
07:44:28
нет какой мути:) Все предельно прозрачно:)

Oleg
26.05.2016
07:45:10
модель забирает данные из бд, как она может быть данными?
мы же вроде разобрались что из базы их не модель забирает

Admin
ERROR: S client not available

Oleg
26.05.2016
07:45:48
а мы их маппим в модель

Кирилл
26.05.2016
07:46:30
модель забирает данные из бд, как она может быть данными?
модель сама по себе ничего не забирает и ничего с ебе не содержит кроме логики будущего экземпляра. А вот созданный экземпляр можно уже заполнять

мужики, надоели уже, чес слово. На одном месте толчетесь

Andrey
26.05.2016
07:47:44
Кирилл, спасибо, всё разьяснил, пойду я работать

Кирилл
26.05.2016
07:48:58
И я пойду) Времени чот много тут оставил) Пиши, коль чего

Oleg
26.05.2016
09:24:03
модель сама по себе ничего не забирает и ничего с ебе не содержит кроме логики будущего экземпляра. А вот созданный экземпляр можно уже заполнять
я говорю не о какойто конкретной реализации а о самом паттерне не привязанному к языку, и если внимательно почитать например тут 2.Активная модель — модель оповещает представление о том, что в ней произошли изменения, а представления, которые заинтересованы в оповещении, подписываются на эти сообщения. Это позволяет сохранить независимость модели как от контроллера, так и от представления. то можно увидеть Это позволяет сохранить независимость модели как от контроллера, так и от представления. о какой независимости может идти речь если ты модель в контроллере создал?

ну и выдержка из википедии как раз про трактовку модели как средство доступа к базе Начинающие программисты (особенно в веб-программировании, где аббревиатура MVC стала популярна) очень часто трактуют архитектурную модель MVC как пассивную модель MVC. В этом случае модель выступает исключительно совокупностью функций для доступа к данным, а контроллер содержит бизнес-логику. В результате код моделей по факту является средством получения данных из СУБД, а контроллер представляет собой типичный модуль, наполненный бизнес-логикой, или скрипт в терминологии веб-программирования. В результате такого понимания MVC разработчики стали писать код, который Pádraic Brady, известный в кругах сообщества Zend Framework, охарактеризовал как ТТУК — «Толстые тупые уродливые контроллеры» (Fat Stupid Ugly Controllers)

Oleg
26.05.2016
10:08:54
а где вы экземпляр модели тогда создаете, если не в контроллере, я стесняюсь спросить?
не нужно смотреть на паттерн с точки зрения какойто конкретной реализации - есть мнение что модель это очень большая штука включающая в себя и базу данных и бизнес логику - и создавать экземпляр этого монстра каждый раз не дешевое удовольствие

Maxim
26.05.2016
10:09:39
Ребята, вклинюсь в дисскусиию. Так а где размещать бизнес-логику? Если контроллер - это чисто валидатор данных с вьюхи?

Google
Maxim
26.05.2016
10:10:10
Получается тогда надо вводить 4-ю сущность

Oleg
26.05.2016
10:11:15
Получается тогда надо вводить 4-ю сущность
на мой взгляд более жизнеспособная схема такова model <> logic <> controller <> viewmodel <> view

Maxim
26.05.2016
10:11:51
первая модель - это объектный маппинг на БД?

Oleg
26.05.2016
10:14:12
первая модель - это объектный маппинг на БД?
да в принципе - но не только - это вообще все данные которые используются - статические глобальные ...

а вообще она и счас такая же но из-за чего все спорят про толсые модели или контроллеры - что немогут понять что лучше model <> (logic <> controller <> viewmodel) <> view или (model <> logic) <> (controller <> viewmodel) <> view

Maxim
26.05.2016
10:49:09
Кирилл уже печатает минут 15

Кирилл
26.05.2016
10:50:05
не нужно смотреть на паттерн с точки зрения какойто конкретной реализации - есть мнение что модель это очень большая штука включающая в себя и базу данных и бизнес логику - и создавать экземпляр этого монстра каждый раз не дешевое удовольствие
Всё зависит от конкретного проекта - монстр там будет или нет. А для чего тогда создавать модель, пусть даже и "монстра", если не вызывать её?) Понятно что модель ни в коем случаем не должна ограничиваться просто описанием набора параметров, которые будут присутствовать в ней. Контроллер, по хорошему - это, "распределитель", который направит куда нужно, исходя из GET запроса, например, вызовет нужный метод модели. Логика модели - только в модели. Контроллеру - "контроллировать" модель (вот такая тафталогия). Женщинам - цветы, детям - мороженое и не перепутай. Всё правильно вы, Олег, говорите за исключением одной очень серьезной вещи - массив - это никак не модель ;) Есть класс описывающий модель, содержащий в себе все её методы. Есть экземпляр модели, который вы создали через контроллер и, например, целиком направили во вьюшку. Как было он экземпляром модели, так и остался, т.е. вызов во вьюшке $model->getName(); сработает. А вот если вы контроллером передали во вьюшку не модель, а массив данных $data = ["name" => "Lolo", "fake" => true], то кроме этих данных у вас ничего больше и нет.

да работаю параллельно:)

запятых то запятых наставил) Благо что в программировании это не требуется)

Oleg
26.05.2016
10:53:25
Всё зависит от конкретного проекта - монстр там будет или нет. А для чего тогда создавать модель, пусть даже и "монстра", если не вызывать её?) Понятно что модель ни в коем случаем не должна ограничиваться просто описанием набора параметров, которые будут присутствовать в ней. Контроллер, по хорошему - это, "распределитель", который направит куда нужно, исходя из GET запроса, например, вызовет нужный метод модели. Логика модели - только в модели. Контроллеру - "контроллировать" модель (вот такая тафталогия). Женщинам - цветы, детям - мороженое и не перепутай. Всё правильно вы, Олег, говорите за исключением одной очень серьезной вещи - массив - это никак не модель ;) Есть класс описывающий модель, содержащий в себе все её методы. Есть экземпляр модели, который вы создали через контроллер и, например, целиком направили во вьюшку. Как было он экземпляром модели, так и остался, т.е. вызов во вьюшке $model->getName(); сработает. А вот если вы контроллером передали во вьюшку не модель, а массив данных $data = ["name" => "Lolo", "fake" => true], то кроме этих данных у вас ничего больше и нет.
все зависит от конкретного проекта? но в любом случае массив не может быть моделью? странно звучит

Владислав
26.05.2016
10:54:11
Добрый день)

Кирилл
26.05.2016
10:54:28
это я про монстра же) Размер модели будет зависеть от проекта. Глупо даже аксиому такую пояснять:)

Доброго дня)

Кирилл
26.05.2016
10:55:23
надеюсь это шутка

где вы описываете модель?

Oleg
26.05.2016
10:56:19
Кирилл
26.05.2016
11:00:29
ну так чего? Где модель то описываете? Не так: class Article extends model { /*code*/ } ?)

Oleg
26.05.2016
11:02:01
ну так чего? Где модель то описываете? Не так: class Article extends model { /*code*/ } ?)
нет - это вообще не важно как ее описать так что класс может быть моделью или нет?

Andrey
26.05.2016
11:03:07
Олег, у вас свой я.п. ?

Кирилл
26.05.2016
11:05:00
нет - это вообще не важно как ее описать так что класс может быть моделью или нет?
Что за привычка вопросом на вопрос отвечать?) я же спросил - как его описываете вы!"?)

Oleg
26.05.2016
11:05:47
Олег, у вас свой я.п. ?
да причем тут язык вообще? паттерн что описан на конкретном языке и в нем сказано что массив моделью не может быть? я вот немогу понять почему class qqq{$id=1;} может быть моделью а [id=>1] уже все не может - откуда это все берется - где это описано?

Страница 110 из 8430