Пользовательская функция CodeIgniter - PullRequest
0 голосов
/ 18 сентября 2011

Чтобы проверить, вошел ли пользователь в систему, мне нужно выполнить довольно длинный оператор if, а затем перенаправить пользователя в зависимости от того, вошел ли пользователь в систему или нет.Я думаю, что пользовательская функция, такая как

if (logged_in()) { redirect }

будет более подходящей.Но создание библиотеки для одной функции кажется мне ненужным.Что я должен делать?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Мне нужно выполнить довольно длинный оператор if, но создание библиотеки для одной функции кажется ненужным

Это вовсе не «ненужно» и не является строго «необходимым».", но это, вероятно, хорошая идея - создать библиотеку / класс для этого.

Если у вас много логики, с которой вам нужно работать, например," довольно длинное выражение if ", используя классможет помочь вам разбить это на более мелкие части и сделать логику более управляемой.Если вам нужно вызвать только один открытый метод класса, например $this->auth->is_logged_in(), в этом нет ничего плохого, тогда вы можете создать небольшой вспомогательный файл или функцию-обертку для вызова метода и поместить туда логику перенаправления вместо класса,Возможно, что-то вроде этого:

// Make sure your "auth" library is autoloaded or load it here
function logged_in($redirect = TRUE)
{
    $CI =& get_instance();
    $logged_in = $CI->auth->is_logged_in();

    // Redirect the user...
    if ( ! $logged_in AND $redirect)
    {
        redirect('somewhere/else/');
    }

    // Or just check if they are logged in
    return $logged_in;
}

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

0 голосов
/ 18 сентября 2011

Хотя помощники обычно сохраняются для разъединенных функций, которые не имеют ничего общего с вашим приложением, я думаю, что в этом случае они уместны. Просто создайте вспомогательную функцию с именем is_logged_in.

Чтобы узнать больше о помощниках, посетите Документы:

http://codeigniter.com/user_guide/general/helpers.html

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