CodeIgniter輔助之第三方類庫third_party用法分析,codeigniter類庫_PHP教程

來源:互聯網
上載者:User

CodeIgniter輔助之第三方類庫third_party用法分析,codeigniter類庫


本文執行個體分析了CodeIgniter輔助之第三方類庫third_party用法。分享給大家供大家參考,具體如下:

third_party用來存放系統中引入的第三方類庫,類庫通常提供的功能比較豐富,相應的學習成本也要高些,系統中能用到功能有限,所以建議在引入類庫時進行適當的封裝,讓系統中更方便使用,其他人使用時只需關注擴充的方法而無法關注具體的實現。以CI整合Twig模版為例吧。

首先需要下載Twig類庫,並放在third_party中,然後在libraries中進行一次封裝,樣本如下:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');require APPPATH.'third_party/Twig/Autoloader.php';/** * Twig模版引擎 * */class Twig{  public $twig;  public $config;  private $data = array();  /**   * 讀取設定檔twig.php並初始化設定   *    */  public function __construct($config)  {    $config_default = array(      'cache_dir' => false,      'debug' => false,      'auto_reload' => true,      'extension' => '.tpl',    );    $this->config = array_merge($config_default, $config);    Twig_Autoloader::register ();    $loader = new Twig_Loader_Filesystem ($this->config['template_dir']);    $this->twig = new Twig_Environment ($loader, array (        'cache' => $this->config['cache_dir'],        'debug' => $this->config['debug'],        'auto_reload' => $this->config['auto_reload'],     ) );    $CI = & get_instance ();    $CI->load->helper(array('url'));    $this->twig->addFunction(new Twig_SimpleFunction('site_url', 'site_url'));    $this->twig->addFunction(new Twig_SimpleFunction('base_url', 'base_url'));  }  /**   * 給變數賦值   *    * @param string|array $var   * @param string $value   */  public function assign($var, $value = NULL)  {    if(is_array($var)) {      foreach($val as $key => $val) {        $this->data[$key] = $val;      }    } else {      $this->data[$var] = $value;    }  }  /**   * 模版渲染   *    * @param string $template 模板名   * @param array $data 變數數組   * @param string $return true返回 false直接輸出頁面   * @return string   */  public function render($template, $data = array(), $return = FALSE)  {    $template = $this->twig->loadTemplate ( $this->getTemplateName($template) );    $data = array_merge($this->data, $data);    if ($return === TRUE) {      return $template->render ( $data );    } else {      return $template->display ( $data );    }  }  /**   * 擷取模版名   *    * @param string $template   */  public function getTemplateName($template)  {    $default_ext_len = strlen($this->config['extension']);    if(substr($template, -$default_ext_len) != $this->config['extension']) {      $template .= $this->config['extension'];    }    return $template;  }  /**   * 字串渲染   *    * @param string $string 需要渲染的字串   * @param array $data 變數數組   * @param string $return true返回 false直接輸出頁面   * @return string   */  public function parse($string, $data = array(), $return = FALSE)  {    $string = $this->twig->loadTemplate ( $string );    $data = array_merge($this->data, $data);    if ($return === TRUE) {      return $string->render ( $data );    } else {      return $string->display ( $data );    }  }}/* End of file Twig.php *//* Location: ./application/libraries/Twig.php */

模版的操作通常有一些配置的資訊,這裡通過config下的twig.php進行配置,通過CI load library的方式載入時,與類名同名的設定檔存在時,會自動以數組的方式將參數傳入類的建構函式。

<?php// 預設副檔名$config['extension'] = ".tpl";// 預設模版路勁$config['template_dir'] = APPPATH . "views/";// 緩衝目錄$config['cache_dir'] = APPPATH . "cache/twig/";// 是否開啟偵錯模式$config['debug'] = false;// 自動重新整理$config['auto_reload'] = true;/* End of file twig.php *//* Location: ./application/config/twig.php */

為了載入base_url site_url等函數到模版,類與CI產生了依賴,分離開可能更好,比如在serice中進行一次封裝,增加一些自訂函數等,這樣其他地方、其他系統也就很方便複用該類了。

更多關於codeigniter相關內容感興趣的讀者可查看本站專題:《codeigniter入門教程》和《CI(CodeIgniter)架構進階教程》

希望本文所述對大家基於CodeIgniter架構的PHP程式設計有所協助。

您可能感興趣的文章:

  • CodeIgniter配置之database.php用法執行個體分析
  • CodeIgniter多語言實現方法詳解
  • CI(CodeIgniter)模型用法執行個體分析
  • CodeIgniter擴充核心類執行個體詳解
  • CodeIgniter視圖使用注意事項
  • CodeIgniter讀寫分離實現方法詳解
  • CodeIgniter配置之SESSION用法執行個體分析
  • CodeIgniter配置之routes.php用法執行個體分析
  • CI(CodeIgniter)簡單統計訪問人數實現方法
  • CodeIgniter鉤子用法執行個體詳解

http://www.bkjia.com/PHPjc/1094767.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1094767.htmlTechArticleCodeIgniter輔助之第三方類庫third_party用法分析,codeigniter類庫 本文執行個體分析了CodeIgniter輔助之第三方類庫third_party用法。分享給大家供大家參...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.