我需要在CodeIgniter应用程序中访问多个控制器中的某些功能。在这些时刻,功能基本上是基本的,例如:
generate_random_key() //just a random string
is_logged() //check if user is logged or not
logged_user_only() //if unlogged, redirect
unlogged_user_only() //if logged, redirect
由于这些功能与登录相关,我可以将它们放在帮助文件中并放在Application/helpers/login_helper.php
或
我可以通过创建MY_Controller.php
并将其放入Application/Core/MY_Controller.php
这两种方法都有效,但我想知道哪种方法更适合这种任务。我认为应该有一些规则,何时应该扩展控制器或何时应该使用帮助器?
答案 0 :(得分:1)
IMO,登录功能与Controller无关。这就是我可能会将你提到的功能放入帮助器或库中的原因。
答案 1 :(得分:1)
如果您在其他控制器中使用这些功能(并且仅在其他控制器中),我建议将它们重构为MY_Controller。 这也可以让您直接访问$ CI实例(而不是调用get_instance())
另一方面,您可以创建身份验证库。这可能更合适..
EDIT ::
我建议将MY_Controller作为基础,它包含auth包装器函数,它从管理此类事物的库中调用功能。
答案 2 :(得分:0)