1

CodeIgniter には、プロジェクトに固有の多くのスクリプトが含まれていることがよくあります。たとえば、次のようになります。

 <?php    
// Load many things
$this->load->model('news_model');
$this->load->helper('utility_helper');
$news = $this->news_model->get_basic_news();

// For moment no news
$view_datas['news']['check'] = false;

if ($news) {

    $view_datas['news'] = array(

        'check' => true,
        'news' => _humanize_news($news)

        );
}
?>

このスクリプトはさまざまなコントローラーで使用されています。現時点では、scriptsフォルダーを作成し、そのようにインポートしていますinclude(APPPATH . 'scripts/last_news.php');。この問題を処理する最良の方法ではないと確信しています。それについて何か考えはありますか?

更新: 回答に記載されている解決策は、helperまたはを使用することlibraryです。以前のコードの書き直しを想像してみましょう:

class Scripts {

public function last_news() {
    // Load many things to use
    $CI =& get_instance();
    $CI->load->model('news_model');
    $CI->load->model('utility_helper');

    $news = $CI->news_model->get_basic_news();

    // Avoid the rest of code
}

}
4

1 に答える 1

1

新しいライブラリを作成し、必要な場所にそのライブラリをロードするだけですか?例えば

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

class Newclass {

    public function get_news($limit)
    {
      //return news
    }
}

/* End of file Newsclass.php */

あなたのコントローラーで

$this->load->library('newsclass');
$this->newsclass->get_news($limit);

または、別のアイデアはヘルパー関数を作成することです。

于 2013-02-06T15:27:20.470 に答える