Настройка Codeigniter HMVC с помощью Tank auth

У меня возникли проблемы с получением рабочей версии Codeigniter 2.0.3 с настройкой HMVC и tank auth (настроенной как модуль). Я установил CI properlly, а затем установил HMVC с этими направлениями https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

Я получаю мой приветственный контроллер / вид в качестве примера просто отлично, что означает, что HMVC работает. Затем я пытаюсь добавить Tank auth в проект, добавив его в папку в модулях папка. Он имеет правильный контроллер / вид / модель и т. д.. настройка внутри бака auth. Я даже добавил в маршруты что-то вроде

$route ["auth"]= "auth / login";

Я также расширил контроллер в модуле auth до MX_Controller, как указано. Также в конструкторе у меня есть :

$this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
    $this->load->library('security'); <--failing to load this

    $this->load->library('tank_auth');
    $this->lang->load('tank_auth');
     $this->form_validation->CI =& $this;

Кажется, что он перенаправляет штраф на модуль, однако он приходит с ошибкой, говоря ::

Ошибка

не удалось загрузить запрошенный класс: security

что я делаю не так? У кого-нибудь есть рабочая установка CI с HMVC и Tank auth в качестве модуля, чтобы я мог видеть, как это делается? Я новичок в HMVC, спасибо

7 ответов


Я нашел такую же проблему, но я решил, просто добавив комментарий

$this->load->library('security');

так это будет выглядеть так:

//$this->load->library('security');

поскольку безопасность теперь является частью ядра codeigniter, я думаю, что он уже загружен по умолчанию, и все, кажется, работает довольно хорошо


сейчас в Помощник по CodeIgniter 3.0 руководство пользователя

попробуй:

$this->load->helper('security');

я исправляю это, создавая на application/libraries каталог со следующим кодом:

require_once(BASEPATH.'core/Security.php');

class Security extends CI_Security { }

Я нашел решение, я просто взял в безопасности.php-файл из папки codeigniters system / core и опустил его в систему/библиотеки.


  • переместить файл security.php с system/core to system/libraries

  • затем измените core/codeigniter.php номер строки 204 из $SEC =& load_class('Security', 'core'); до $SEC =& load_class('Security', 'libraries');


безопасность.php присутствует в " codeigniter/system/core/Security.РНР" поэтому предоставьте этот путь, ваша проблема будет решена легко

load->library('../core/security');

Я Прочитал CodeIgniter 3.X руководство пользователя, и я обнаружил, что" безопасность "теперь доступна в качестве "помощника".

поэтому вам нужно изменить это;

$this->load->library('security');

на

$this->load->helper('security');

фильтрация XSS

класс ввода имеет возможность автоматически фильтровать Ввод, чтобы предотвратить атаки межсайтовых сценариев. Если вы хотите, чтобы фильтр запускался автоматически каждый раз, когда он сталкивается с данными POST или COOKIE, вы можете включить его, открыв application / config / config.php-файл и установить этот:

$config['global_xss_filtering'] = TRUE;

вам нужно прочитать руководство пользователя CodeIgniter 3.0 есть так много изменений и реализации или см. журнал изменений.