我现在花了几个小时,试图找出为什么我不能在codeigniter中使用简单的钩子。
我在配置中启用了挂钩。 我快速拼写拼写和案例。
我在config / hooks.php中编写了以下代码:
$hook['pre_controller'] = array(
'class' => '',
'function' => 'set_previous_page',
'filename' => 'previous_page',
'filepath' => 'hooks'
);
然后我的previous_page.php文件位于hooks文件夹中:
function set_previous_page()
{
echo "Hi!"; die;
}
显然目的不是回应嗨!然后停止脚本执行,但它只是让它工作。我确实尝试了几个钩点。但pre_controller我应该能够输出hi并杀死脚本,然后将hi作为唯一的输出。
但是当我加载我的页面时,它只是正常加载。
我故意尝试,搞乱了钩子数组中的语法,它确实给了我一个错误,并且没有加载页面的其余部分。这只是告诉我,至少它确实认识到我已经转向了。
但是从这里开始我就输了。不知道该怎么办?
你有什么想法吗?我现在试着在它上面睡觉,并希望这里有一些聪明的家伙有答案!谢谢你提前!
编辑:顺便说一句,我正在使用MX(模块化扩展),phil sturgeons模板库和Ion auth。不要以为他们应该有影响力。
答案 0 :(得分:1)
您的代码与手册中的代码不同。你看过了吗?
http://www.codeigniter.com/user_guide/general/hooks.html
我刚在本地尝试过,它运行正常。
应用/配置/ hooks.php:
$hook['pre_controller'] = array(
'class' => '',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => ''
);
应用/钩/ Myclass.php:
<?php
function Myfunction(){
echo "wut wut";
die;
}
通过这一切,我访问该页面并获得wut wut
。
您错过了文件名中的php
扩展名,但如果其他所有内容都正常,则会抛出unexpected end of input
个异常。
答案 1 :(得分:0)
这可能是很晚的响应,以防万一有人使用CI 3.x遇到与我相同的此类问题。只需在将条目放入config / hooks.php
之前,先在config / config.php文件$config['enable_hooks'] = TRUE;
中启用钩子即可。