Крюки не работают в CodeIgniter 2.X - PullRequest
0 голосов
/ 10 декабря 2011

Я включил хуки в config.php

$config['enable_hooks'] = TRUE;

здесь есть hook.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files.  Please see the user guide for info:
|
|   http://codeigniter.com/user_guide/general/hooks.html
|
*/

$hook['post_controller_constructor'] = array(
    'class' => 'Authorization',
    'function' => 'authorize',
    'filename' => 'authorization.php',
    'file_path' => 'hooks'
);

/* End of file hooks.php */
/* Location: ./application/config/hooks.php */

, а вот файл authorization.php в папке application / hooks /

<?php 


    class Authorization {

        private $ci;

        function __construct()
        {
            parent::__construct();
            $this->ci = get_instance();
        }

        function authorize()
        {
            echo 'This should be outputed';
        }

    }

?>

но это не работает.никто не знает почему?

Ответы [ 2 ]

0 голосов
/ 09 мая 2014

Я думаю, что вы пропустили [] рядом с переменной массива.В вашем коде написано:

$hook['post_controller_constructor'] = array(
    'class' => 'Authorization',
    'function' => 'authorize',
    'filename' => 'authorization.php',
    'file_path' => 'hooks'
);

Я думаю, что это должно быть так:

$hook['post_controller_constructor'][] = array(
    'class' => 'Authorization',
    'function' => 'authorize',
    'filename' => 'authorization.php',
    'file_path' => 'hooks'
);

обратите внимание на [] рядом с крючком $['post_controller_constructor'] переменная.

Надеюсь, это поможет.Спасибо ..

0 голосов
/ 23 января 2012

Я использую Codigniter 2.1, и он работает .. но мой файл ловушек называется 'MainLoader' и начинается так:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MainLoader {

  public function mainLoader()
  {

      $CI =& get_instance();

      echo 'This should be outputed';

      //Whatever you want to do here

  }

Надеюсь, это поможет: -)

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