Code Igniter App: функция входа в систему: куда поставить - PullRequest
1 голос
/ 21 июня 2011

Я создаю простую систему входа в систему для сайта на основе CI, и я не уверен, где разместить свою функцию:

is_logged_in()
    // check if session logged in stuff exists
    // if not check for cookie and reset from that
    // return true or false

Для начала мне нужно вызвать это на некоторых общедоступных страницах, чтобы они могли отобразить: «Вы вошли как [бла]. Перейти в личный кабинет.

Имеет ли смысл поместить это в мою модель входа в систему, вызвать ее из моего контроллера (ов), а затем просто передать результат (logged_in: true / false) моим представлениям?

1 Ответ

1 голос
/ 21 июня 2011

В основном.

Это может быть модель или проблема с библиотекой.Возникает вопрос, как вы сохраняете, вошли ли они в систему. Лично я обычно помещаю ее в библиотеку, которая вызывает определенную модель, сначала она кажется менее изящной, но в действительности я не хочу, чтобы моя модель знала что-либо о моем$_SESSION или мой $this->session, один из которых был бы необходим, если бы я хотел иметь хорошую систему аутентификации.

Что касается связи с представлением, существует несколько способов:

  1. Имейте это как специальную переменную, передаваемую в представление: Бонус : Это самое очевидное. Ущерб : вам нужно будет поместить его в каждый звонок для просмотра.Это означает, что вы либо перезаписываете свой загрузчик, либо обновляете все свои элементы управления (может быть грубым).
  2. Определите его как константу: Бонус : безусловно, самый простой, если у вас есть логика в представлении. Ущерб : константы редко используются, их сложно отлаживать, и это не совсем CodeIgniter.
  3. Имеют вспомогательную функцию (буквально «помощник»).функция) Бонус : универсально доступное значение, которое относительно легко отлаживать. Ущерб : Требуется, чтобы помощник знал о библиотеке и / или модели (на самом деле это верно для встроенного form_helper, но он все еще открывает общеизвестную банку с червями), и, вероятно, это будет одно-Файл вспомогательных функций.
  4. Условно включить представление из контроллера Бонус : Он удаляет всю логику с вашего взгляда. Ущерб : Вам все еще нужно, чтобы ваши контролеры знали о логике.

Лично я, скорее всего, буду использовать # 3 и 4, но у каждого есть свои преимущества.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...