25

h()として機能するようないくつかのユーティリティ関数を作成しましたecho htmlentities($var)。これらの関数をどこでも利用できるようにしたいと思います。だからどこに置くの?

4

4 に答える 4

56

@david barker が言ったように、ヘルパーを使用できます。すべての関数を含む、たとえば「site_helper」という名前のファイルを作成します。

ただし、関数が既に存在するかどうかを確認する必要があることに注意してください。そうしないと、「関数は既に宣言されています」というエラーが発生します。

したがって、次のようなものです:

ファイルsite_helper.php(内application/helpers/)

if(!function_exists('h'))
{
  function h($value)
  {
   return htmlentities($value);
  }
}

if(!functin_exists('other_function')
//....etc.

そして、config/autoload.php でそれをオートロードできます:

$autoload['helpers'] = array('site');

^-- アンダースコアの前の部分のみを使用してファイルを呼び出す方法に注意してください。また、ヘルパーはクラスではなく、関数のコレクションです。

于 2012-05-31T09:58:04.637 に答える
7

/application/config/constants.php ファイルにグローバル変数ファイルを含める必要があります。次に、グローバル関数ファイルを /application/helpers フォルダーに移動します。次に、グローバル関数ファイルを自動ロードする必要があります。/application/config/autoload.php

$autoload['helpers'] = array('your-global-function-file.php');

アップグレードは絶対的な悪夢になるため、システム フォルダー プロジェクト内では何も移動しないことをお勧めします。場合によっては、CI ロジックに準拠するようにコードをリファクタリングすることで、あらゆる場所にコピー/貼り付けを試みるよりも、長期的には高速になる可能性があります。

于 2012-05-31T09:55:44.523 に答える
4

これはまさにヘルパーの目的です。

新しいヘルパーを作成し (忘れずに _helper.php を追加してください)、ヘルパー フォルダーに配置します。

設定で自動ロードするか(どこでも使用できるように)、必要に応じて手動でロードすることができます。

于 2012-05-31T09:58:08.357 に答える
3

グローバル関数にはcodeigniter-kintとカスタム ファイルを使用します。これにより、次のようなより便利で美しい出力が得られます。 ここに画像の説明を入力

ファイル: application/helpers/globalfunctions_helper.php

<?php
    /**
     * @file Global Helper Functions
     * 
     */

    if(!function_exists('pr'))
    {
      function pr($value=false){
       $CI = get_instance();
       $CI->load->library('kint');
       return @Kint::dump($value);   
      }
    }
    if(!function_exists('dp')){
      function dp($value=false)
      {
       $CI = get_instance();
       $CI->load->library('kint');
       Kint::dump($value);
       die();
      }
    }

参照: http://raveren.github.io/kint/

于 2013-09-12T11:56:30.343 に答える