Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: MVC Что должен решить контролер, а что отображение
Форумы портала PHP.SU » » Вопросы новичков » MVC Что должен решить контролер, а что отображение

Страниц (1): [1]
 

1. ekkl - 26 Марта, 2014 - 20:23:05 - перейти к сообщению
Может однозначного ответа нет, но есть такой вопрос. Пишу на Kohana, хотя это к делу прямого отношения не имеет.
Есть код в отображении
PHP:
скопировать код в буфер обмена
  1.    <?PHP if ($test) : ?>
  2.           <?= HTML::anchor(Route::url('install', ['action' => 'database']), __('Next'), ['class' => 'button right radius']); ?>
  3.     <div class="clear"></div>
  4.    <?PHP else : ?>

Как на меня не очень красиво...
Куда уходит ссылка, я считаю должен решить контролер; заголовок, 50/50, но все-же лучше снова контролер. Ну а класс ссылки, это уже 100% отображение.
Получается что-то типа
PHP:
скопировать код в буфер обмена
  1.    <?PHP if ($test) : ?>
  2.           <?= HTML::anchor($href, $title, ['class' => 'button right radius']); ?>
  3.     <div class="clear"></div>
  4.    <?PHP else : ?>
Тоже не очень...
И перевести отображения на шаблонизатор будет не очень просто с таким подходом.
Что можете посоветовать по данному вопросу?
2. Мелкий - 26 Марта, 2014 - 20:59:05 - перейти к сообщению
Ссылки не имеют отношения ни к данным ни к логике, а самое прямое к представлению => я считаю первый вариант уместным.

А вот с классом HTML, заявленный как хелпер, я не согласен. Наоборот, усложняет и запутывает код вёрстки там, где это совершенно не окупается.
3. ekkl - 26 Марта, 2014 - 21:18:02 - перейти к сообщению
т.е. отображение должно решить куда уходит ссылка?
А обработчик формы кто должен определить?
HTML это стандартный хелпер Kohana...
4. ekkl - 22 Апреля, 2014 - 12:38:56 - перейти к сообщению
Еще один вопрос из этой оперы. Для создания формы написал собственный класс. Форма создается примерно так
PHP:
скопировать код в буфер обмена
  1. $form = Spform::factory(Request::initial()->uri())
  2.                 ->session('register')
  3.                 ->text('name')->icon('torso')
  4.                 ->email('email')->icon('mail')
  5.                 ->password('pass')->icon('unlock')->icon('lock', true)
  6.                 ->password('passconf')->icon('dislike')->icon('like', true)
  7.                 ->submit(__('registration'));

Меня смущает то, что в контроллере приходится указывать значок для поля. На самом деле значок это класс для некоторого элемента перед элементом управления формы.
CODE (html):
скопировать код в буфер обмена
  1. <div class="input-wraper">
  2.     <div class="row">
  3.         <div class="large-offset-1 large-11>">
  4.             <?= Form::label($id, $title); ?>
  5.         </div>
  6.     </div>
  7.     <div class="row collapse">
  8.             <div class="large-1 columns">
  9.             <span class="prefix <?= $icon ?>" style="font-size: 140%"></span>
  10.         </div>
  11.         <div class="large-6 columns">
  12.             <?= $field ?>
  13.             <small class="error"><?= $abide_msg ?></small>
  14.         </div>
  15.         <div class="large-5 columns" data-input-error="<?= $name ?>">
  16.         </div>   
  17.     </div>
  18. </div>

Например, я хочу поместить перед полем значок "user" В принципе, это решать отображению. Но так как отображения формы у меня как такового нет, прописать в отображении я не могу-то. На кого лучше переложить это?

 

Powered by ExBB FM 1.0 RC1