@prophp7

Страница 99 из 1387
Hell
01.12.2016
17:29:22
нет блин, серьезный вопрос

чем больше таких как ты, тем дороже стоят знания почему так не надо делать
а как надо делать? Я бы вообще забил на тупй баг: повторяющиеся изображения в слайдере

т.к. решение проблемы уже занимает кучу времени. Ну повторяется, ну и что? Ой у юзера дежа вю случится

Ilya
01.12.2016
17:31:48
сразу забирай из бд свой список ссылок без дубликатов

Google
Hell
01.12.2016
17:32:51
Так этот список ссылок формируется в Smarty шаблоне из различных источников (таблиц БД)

Bohdan
01.12.2016
17:33:56
Проблема не в смарти а в кривой архитектуре в целом

Какого хера смарти (фронт) лезет в бд?

Hell
01.12.2016
17:34:37
Архитектуру не выбирают. Она навязана сверху.

Спросите разработчиков Oxid

Bohdan
01.12.2016
17:36:08
Из Совершенного кода

Hell
01.12.2016
17:36:30
Там сейчас так и просится (в коде шаблона) микро разделение на View и Controller.

На чем пейсать этот ваш микро контроллер в смарти шаблоне?

Bohdan
01.12.2016
17:39:40
Смарти == view из MVC, view != controller

Зачем его туда пихать?

Hell
01.12.2016
17:40:12
Но у меня нет контоллера!

Aleh
01.12.2016
17:40:34
touch path/to/your/Controller.php

не благодари

Google
Hell
01.12.2016
17:40:51
я должен минимизировать кол-во этих.. как иво.. deployment items

Aleh
01.12.2016
17:41:04
tar -c потом

Sergey
01.12.2016
17:41:07
Смарти == view из MVC, view != controller
Смарти = тулза для генерации view, а не само view. На бэкэнде View пассивно и оно есть HTTP запрос или ответ

а задача "конвертации" представления данных (из формата приложения в формат UI) ложится на контроллер

смарти в этом плане - тулза которую юзает контроллер для формирования представления данных

"презентационная логика" в контроллерах короч

Bohdan
01.12.2016
17:42:12
Ок, перефразирую, шаблон смарти это часть view. Так лучше?

Sergey
01.12.2016
17:42:17
нет)

шаблон смарти это шаблон смарти

который контроллер юзает для формирования html, который уже будет частью респонса тоесть view в контексте MVC (или MVA)

Hell
01.12.2016
17:42:56
Лучше бы смарти не создавали, да

Bohdan
01.12.2016
17:43:27
Т. е. смарти не попадает в парадигму MVC?

Aleh
01.12.2016
17:43:41
сервер не попадает в нее

Hell
01.12.2016
17:43:45
нет, не попадает.

Aleh
01.12.2016
17:44:01
а смарти, ну чисто в теории, можно

Sergey
01.12.2016
17:44:50
Т. е. смарти не попадает в парадигму MVC?
парадигма MVC (а точнее схема просто) это просто способ убрать связанность между бизнес логикой и презентационной логикой. Причем только в одном направлении (бизнес логика не должна зависеть от презентационной, но презентационная вполне себе зависит от бизнес логики)

в MVC не попадает ни роутеры, ни шаблонизаторы

это лишь средства достижения целей

у MVC намного более простая идея а уж реализация - дело другое

ну и еще были такие ребята которые MVC Model2 придумали для JSX, вот там были роутеры и прочяя шляпа

Google
Hell
01.12.2016
17:45:50
http://stackoverflow.com/a/8710953/444079

Sergey
01.12.2016
17:45:52
лучше забудь вообще эти три буквы и почитай про Model-View-Adapter

а лучше про separation on concerns

MVC это способ решить конкретную проблему, а не зная зачем решать проблему ты не поймешь способ

Hell
01.12.2016
17:46:39
Smarty can be used as a part of View implementation of some MVC framework.

http://www.smarty.net/docsv2/de/language.function.php.tpl

концептуально я должен лучше использовать это

Bohdan
01.12.2016
17:52:20
Одно из предназначений Smarty - это отделение логики приложения от представления. Конечно же, шаблоны могут содержать в себе логику, но лишь при условии, что эта логика необходима для правильного представления данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т.д. - всё это примеры логики представления. Тем не менее, не следует полагать, что Smarty заставляет вас разделять прикладную логику и логику представления. Smarty не видит разницы между этими вещами, так что переносить прикладную логику в шаблоны вы можете на свой страх и риск.

из доки

Sergey
01.12.2016
17:52:46
> Конечно же, шаблоны могут содержать в себе логику ПРЕЗЕНТАЦИОННУЮ ЛОГИКУ

Bohdan
01.12.2016
17:53:24
я о том же

Sergey
01.12.2016
17:53:27
сори за капс)

тут соль в separation of concerns

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

ты хочешь поменять текст лэйблы - это одна причина

ты хочешь добавить функционал - другая

ты хочешь добавить функционал который относится только к UI - третья

у тебя не должно быть такой ситуации, что ты редактируешь одну и ту же шляпу по нескольким причинам

потому и нужно разделять

Google
Hell
01.12.2016
17:55:02
ОК, а формирование списка ссылок - это какая логика- представления или чего то еще?

Bohdan
01.12.2016
17:55:03
я это понимаю и принимаю, но вот в чем вопрос, если у человека, как он говорит, нет контроллеров, может ли он их делать в смарти и сказать что это разделение? ?

Bohdan
01.12.2016
17:56:51
Так этот список ссылок формируется в Smarty шаблоне из различных источников (таблиц БД)

Sergey
01.12.2016
17:56:54
если шаблон "сам" ходит в базу и забирает инфу - это не ок, потому как ты можешь захотеть поменять структуру базы по причине не относящейся к UI

а если ты даешь шаблону смарти какую-то штуку, которая инкапсулирует в себе знания куда ходить, то с определенными оговорками разделение есть

ну мол если у тебя в смарти есть метод userLinkList()

Admin
ERROR: S client not available

Sergey
01.12.2016
17:58:00
или функция

или хз чего, которая полностью прячет откуда данные

то это ничем не отличается от того, что бы в контроллере просто эти данные передать

а вот когда в шаблоне находится что-то вроде

ну короч какая-то логика

)

тип "слазай забери список линок, отфильтруй, отсортируй

и все это в шаблоне - это уже нарушение

ты таким образом "связал" логику работы с данными и презентационную логику

и теперь когда у тебя логика работы с данными "захочет" поменяться, у тебя будут проблемы

Google
Sergey
01.12.2016
18:00:59
короч смарти - это шаблонизатор. Не надо пытаться "притянуть" сюда MVC

у шаблонизатора простая задача - дать возможность разделить "шаблоны" и "данные"

у MVC задача тоже простая - отделить UI от бизнес логики

что бы бизнес логика не зависела от UI

(но не наоборот, мол если меняется UI но не функционал, это не аффектит функционал. А если меняется функционал, это скорее всего затронет UI)

а ладно всем пофиг

)

Hell
01.12.2016
18:12:10
если шаблон "сам" ходит в базу и забирает инфу - это не ок, ну скажем так, он не обращается к базе напрямую, он обращается к ней через ORM

И к другим обьектам Oxid

Sergey
01.12.2016
18:47:43
тогда это чисто презентационная логика

"обойти массив юзеров" например

что бы сформировать список

но опять же... если говорить о "убрать контроллер"

откуда "шаблон" будет получать "модельки" изначально?

кто ему его даст?

Valentin
01.12.2016
18:51:16
Ух @fes0r разошелся :D

Sergey
01.12.2016
18:51:49
ну и потом, в классическом MVC 79-ого года задача контроллера заключалась исключительно в том, что бы обработать действия пользователей (клики, ввод с клавиатуры), и ничего о view оно не знало. Вьюшка сама себя рисовала и была активной. Сегодня почти все подходы используют пассивное view, что значит что кто-то должен быть между моделью и пассивной вьюшкой, кто-то должен "управлять" вьюшками.

MVP, MVA, MVVM - это вот туда

da horsie
01.12.2016
18:54:35
ого

кажется кого-то покусал Роберт Мартин

Fayozjon [CybernatiC]
01.12.2016
18:55:26
XSS в Web telegram )

Страница 99 из 1387