【问题标题】:codeigniter shorten methodcodeigniter 缩短方法
【发布时间】:2012-11-19 05:40:21
【问题描述】:

我正在使用 codeignitor,目前我有一个名为“Common_func”的库,它是自动加载的。

我可以在任何地方都这样称呼它

$this->Common_func->common_method();

在使用控制器和模型的情况下没问题,但在视图的情况下,它会使 HTML 变得丑陋,

我知道模板解析选项,但我不想这样做。

是否有任何可能的方式来访问缩短结构。

像这样(或类似的话)

Common_func->common_method();

或比这更好。

谢谢。

【问题讨论】:

  • 嗯,你可以将一个部分复制到一个新变量中... $short = $this->Common_func; 然后调用 $short->common_method( );
  • 他必须在他想使用这个库的每一种方法中都这样做,这会使更长的时间
  • 问题:为什么需要访问视图中的方法?听起来不对(如果我太天真,请原谅我)
  • @ajreal 它是一个通用库,例如​​。我们将 jQuery Ui 库移植到 CI,因此我们可以轻松地将 UI 内容集成到我们的项目中,这也是 LIBRARY。
  • 我认为@Vlakarados 明白了,看看他的回答

标签: php codeigniter


【解决方案1】:

最好的做法是根本不使用View 文件中的库,库旨在用于控制器和模型。助手用于视图,它们是随机函数,可帮助您进行格式化/代码生成,有时甚至更多。

尽管如此,如果您真的想保留您的库及其方法,您可以制作“抽象”帮助程序,这将帮助您使视图文件清晰易读:

common_helper.php

function common_method($arg) {
    $ci =& get_instance();
    return $ci->Common_func->common_method($arg);
}

这将使您的助手随时了解库中所做的更改。

【讨论】:

  • 我同意最佳实践,但是在 CI 助手方面是有限的,在某些领域我们的 lib 有更多的事情要做。
  • 它们是如何受到限制的?它们完全不受限制,库可以做的所有事情,助手也可以做。
  • 技术上同意,但是一个问题那么为什么有helper和library? (我不是在争论,但我只是想学习新事物):D
  • 我已经在这里回答了类似的问题,请查看:stackoverflow.com/questions/12631726/…
【解决方案2】:

我在 codeigniter 论坛中找到了这个。此链接可能对您有所帮助

http://codeigniter.com/forums/viewthread/139788/

或者如果你的库名这样长,你可以缩小一点

class SomeClass extends CI_Controller{
   function __construct(){
      parent::__construct();
      $this->lib=$this->Really_Long_Library_name;
   }
}

这样你就可以使用$this->lib 来访问它的方法了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多