За последние 24 часа нас посетили 15558 программистов и 1548 роботов. Сейчас ищут 800 программистов ...

Бизнес-логика в HTML

Тема в разделе "PHP для новичков", создана пользователем VLK, 6 май 2015.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Вопрос может показаться очень глупым, в принципе так оно и есть, хочу понять некий фундамент.

    Рылся тут в шаблонизаторах, читал статьи и как было написано где то, что идут споры зло бизнес-логика в шаблонах или нет, правильно ли я понимаю что под бизнес-логикой подразумевается:
    Код (PHP):
    1. <div class="status_panel">
    2.     <? if ( is_user() ): ?>
    3.     <div class="status_message">Вы зашли как [url="<?= get_user_link(); ?>"]<?= get_user_name(); ?>[/url]</div>
    4.     <? else: ?>
    5.     <div class="status_message">Вы гость!</div>
    6.     <? endif; ?>
    7. </div>
    т.е. проверки, про что то более громоздкое я вообще молчу.

    и если да, то как обрабатывать подобные места (где надо вывести кусок HTML) без бизнес-логики в шаблонах?
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Бизнес-логика - это скорее различные обработки, выборки данных и прочее. Проще говоря, если ты хреначишь запрос в шаблоне, то это не гуд, а если пользуешься набором функций/методов предназначенных для шаблона, то все нормально. В данном случае все логично, ты меняешь вывод в зависимости от состояния (пользователь/гость).
    имхо )
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код во вьюхе - это логика вывода. Это ок.

    Прежде чем чураться чего-то, или что-то восхвалять, нужно понять природу чурания. Иначе можно стать овечкой из стада, которое орет "%нужно_вписать% - зло, руки оторвать!", причем единственным аргументом орать это у каждого в стаде является тот факт, что "все остальные тоже это орут, значит это правда".

    И начинаются танцы с бубнами. Извраты и костыли. Велосипеды и анальные бубны все, что угодно, лишь бы ни строчки php не попало в шаблон. Ведь стадо орет, а значит право.

    А на деле все несколько проще. Пихай код куда угодно. Какой угодно. Главное, чтобы он не противоречил логике. Например открываю я чужой проект, ну или свой после полугода перерыва, и вот нужно мне, как Ромач заметил, какой-то запрос пофиксить. Я прикидываю, что запрос такого-то модуля должен лежать где-то в его файлах. Захожу в папку, ага, эт, значит, конфиги, эт, значит вьюха, эт, значит какие-то классы его вынесены, о, вот, исполнительный файлик, который это юзает. Захожу, нахожу что нужно. В этом логика - я вижу файлик, который, судя по названию, конфиг, и сразу его отсекаю, потому что там не может быть никакой логики, этож конфиг, там какие-то переменные. Вьюху тоже отсек, если там и есть какой-то код, то он точно не отвечает за формирование данных. Он отвечает за их вывод, форматирование, обработку, что угодно, но не за формирование. В файлах с классами тоже нет ничего, это просто классы, которые вне контекста не имеют никакого смысла.

    А теперь прикинь, залезаешь ты в другой проект. И тоже что-то ищешь. По той же схеме, собсно, но не находишь. Потому что запросы в шаблонах. А работа с файлами почему-то в конфигах. И тд и тп. Главное - руководствоваться здравым смыслом. А не воплями незнакомых людей.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Те, кто кричат, что php не должно быть в шаблонах, считают, что шаблоны будут писать верстальщики. Верстальщики чистый html делают, а в свой код я уже сам встрою это. Вот я сейчас на Yii2 начинаю работать, и там во шаблонах вообще постоянно что-то вроде:
    Код (PHP):
    1. <?=ListView::widget([
    2.     "dataProvider" => $posts,
    3.     "itemView" => "__post",
    4.     "summary" => false,
    5.     "pager" => [
    6.         "options" => [
    7.             "id"  => "pager"
    8.         ],
    9.         "linkOptions" => [
    10.             "class"=> "pagernumber"
    11.         ],
    12.         "prevPageLabel" => "<span class=\"bodyicon\"></span>",
    13.         "nextPageLabel" => "<span class=\"bodyicon\"></span>",
    14.     ]
    15. ]); ?>
    Верстальщик не поймёт, а мне удобно.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Верстальщикопроблемы же. HTML - самое простое, с чем мне когда-либо вообще приходилось сталкиваться. Хз за что им вообще деньги платят.
    Не можешь в современность? Ноешь, что в шаблонах появляется код? Жалуешься, что в 90е, когда странички были статичные, мир был лучше? Думаешь, что программисты должны костылить и прогибаться под тебя? Вон из профессии, ты неконкурентоспособен. Вот и вся любовь :)
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    разделение труда, в офисах сами сотрудники тоже могут мыть пол, но не моют же.

    Добавлено спустя 15 секунд:
    Спасибо за разъяснения.
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Не, ну мне нравится работать с верстальщиками, поскольку, хотя я и умею вёрстку делать, для меня это всегда очень скучно, и поэтому я долго вожусь. Но мне от них не нужно готового шаблона под мою систему, расставить в их html нужные вызовы php-а для меня не проблема
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Но и уборщице не платят столько, сколько им :)
    И амбиции у нее не такие, как у них.