Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Контроллер или статический метод из библиотеки? http://forum.kohanaframework.su/viewtopic.php?f=31&t=705 |
Страница 1 из 2 |
Автор: | arhont [ 25 июл 2013, 03:18 ] |
Заголовок сообщения: | Контроллер или статический метод из библиотеки? |
Нужен совет, что лучше использовать для того, что на "языке Джумлы" называется модулем. Или блоком просто... Делать отдельный контроллер или использовать, например статический метод? Просто контроллеры загружают роуты и в них сложно передавать параметры(опять нужно мучать роуты). Я больше склоняюсь переписать код и заменить их статическими методами. Есть ли тут подводные камни? |
Автор: | WinterSilence [ 25 июл 2013, 15:23 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
ну так в конечном итоге тебе все равно нужен будет контроллер где будет вызываться статичный класс, вообще статики по возможности лучше избегать т.к. она постоянно висит в памяти и жрет лишние ресурсы. для упрощения составления запросов можно методы обертки сделать, аля: Код:
|
Автор: | slider23 [ 26 июл 2013, 09:09 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
Контроллеры юзать не стоит, это против принципов MVC (тонкий контроллер, толстая модель) - их сложно тестить, сложно переносить на другой фреймворк, если в последствии возникнет такая необходимость, вы справедливо написали. Делайте отдельными классами. |
Автор: | WinterSilence [ 26 июл 2013, 10:25 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
slider23 если убрать контроллеры, то это будет в духе mvc? |
Автор: | slider23 [ 26 июл 2013, 17:35 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
Ну, у Laravel в туториалах такое практикуют - там код, который обычно находится в контроллерах, содержится в замыканиях роутов. ![]() Контроллеры, конечно, нужны, но они, как завещали нам 37signals, в идеале должны принимать данные от веб-сервера, вызывать модели с логикой и передавать данные во вьюхи. Чем больше разного другого делает контроллер - тем больше вероятность проблем в будущем. А если планируется охватывать сайт тестами - вероятность перерастает в уверенность. Ссылка по теме: http://habrahabr.ru/post/175465/ |
Автор: | WinterSilence [ 26 июл 2013, 18:07 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
речь тут совсем о другом: в джумле модуль это не набор моделей как в кохане(речь о модулях из "коробки"), а скорее аналог триады в кохане. И тот и иной вариант имеют место на существование при разный в рамках проектов на базе коханы. не совсем понял кто такие эти 37signals и какое они отношение имеют к мvс? не покажешь ли свои тесты для какого-либо сайта? очень интересно посмотреть это охватывание |
Автор: | arhont [ 27 июл 2013, 01:10 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
Решил так... Сделал абстрактный класс, добавил его в свой "Common" и вызываю классы(создаю объекты) через new и имя наследника этого абстрактного класса. Подгружаю сами классы в самом текущем контроллере(после класса контроллера). По моему это оптимально и удобнее, чем использовать статику и возится с контроллерами. Такая вот альтернатива. Но в одном случае, я всё же оставлю контроллер, т.к. там он работает и как Ajax и как встроенный сниппет по дефолту(категория изображений по умалчиванию). |
Автор: | nkl [ 30 июл 2013, 16:39 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
Я использую контроллеры только для приема переменных из request и $_POST и последующей подготовки переменных в ВИД. Саму же подготовку этих переменных осуществляю через Model_Uses (я его так обозвал). Допустим, из формы я получил значение $_POST['a'] = 1; и $_POST['b'] = 2, в ВИД мне нужно передать переменную, которая будет результатом сложения этих двух переменных, тогда мой код будет выглядеть так: Код:
в Model_Uses есть такой метод: Код:
Ну как-то так. Мб. я не прав? upd: для особо придирчивых, замечу я намерено убрал все проверки БИНДЫ и прочие атрибуты "хорошего кода" для наглядности. |
Автор: | slider23 [ 04 авг 2013, 20:59 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
WinterSilence, 37signals - это авторы концепции толстых моделей и фреймворка Ruby on Rails, который стал стандартом, который так или иначе пытаются повторить в php-фреймворках. По тестам - тут соображения простые. Проще тестировать методы класса, передавая в них данные в виде аргументов, чем методы контроллера, передавая в них данные через POST, GET и т.п. запросы при помощи общения с веб-сервером. |
Автор: | Sergey [ 07 авг 2013, 01:18 ] |
Заголовок сообщения: | Re: Контроллер или статический метод из библиотеки? |
WinterSilence по сути прав. Нужен отдельный класс для создания, удаления, отображения и пр. для таких блоков и контролёр, где ты сможешь использовать (возможно даже статически) методы этого класса. То, что тебе нужно очень напоминает класс виджетов. |
Страница 1 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |