Создание библиотеки для CodeIginter

Сентябрь 22nd, 2011 § 1 comment

При написании своего не большого проекта понадобилась сделать простую фичу вроде того если пользователь авторизован то имеет доступ к странице, а нет так делаем редирект.  Подумал, что каждый раз писать проверку в каждом методе контроллера это не есть гуд. Сначала мысль пошла в направлении создать статический метод в контроллере и обращаться к нему из всех остальных, но не тут – то было, нельзя. Чутка по-гуглив нарисовалось два решения, ставить HMVC  либо писать библиотеку. Я выбрал последнее. Как оказалось это совсем не сложно


class Authlib {
 public function Authlib()
 {
 $this->CI = & get_instance();
 $this->CI->load->helper('url');
 $this->CI->load->library('session');
 }
 public function isLogged()
 {
 if(!isset($this->CI->session->userdata['auth']))
 redirect (base_url(),'refresh');
 }
 private $CI;
}

Внутри контроллера при каждом вызове пропишем эту строку и тогда если наш пользователь не авторизован он будет ловить редирект


$this->authlib->isLogged();

Что бы иметь доступ к библиотеке из конторолера есть два способа, загрузить его в autoload.php либо явно загружать каждый раз в конторолере, я выбрал сразу, мне кажется так удобнее.


$autoload['libraries'] = array('database','session','authlib');

Вот такой просто способ создания либ за более детальным описанием можно обратится к документации тут

§ One Response to Создание библиотеки для CodeIginter

  • Torin пишет:

    Тут лучше использовать ф-цию userdata() с класса Session она сразу проверяет на существование элемента в массиве и тогда можно просто записать:

    if(!$this->CI->session->userdata('auth'))
    redirect (base_url(),'refresh');

    Зачем писать то что уже написано для вас ;)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Смотреть фильмы онлайн