通常、拡張すると、 html出力をレンダリングCI_Controller
するための関数を使用できます。_output
HMVCを使用しています。MX_Controller
関数をロードしません_output
。
私はそれをテストし、数回実行しました。
質問:
1-MX_Controller
継承しCI_Controller
ますか?
2-どうすれば実装でき_output
ますか?
通常、拡張すると、 html出力をレンダリングCI_Controller
するための関数を使用できます。_output
HMVCを使用しています。MX_Controller
関数をロードしません_output
。
私はそれをテストし、数回実行しました。
質問:
1-MX_Controller
継承しCI_Controller
ますか?
2-どうすれば実装でき_output
ますか?
codeigniter-modular-extensions-hmvcは確かに_output()機能を壊しているようです。bitbucketでバグを送信する方法がわかりません: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
私の回避策は、クラスをオーバーライドしOutput
、カスタム出力メソッドを起動するためのフックを追加することでした。これが私がしたことです。
Output
メインクラスを上書きします。
class MY_Output extends CI_Output
{
function __construct()
{
parent::__construct();
}
// Overwrite the output
public function my_output()
{
$content = $this->get_output();
// do stuff to $content here
$this->set_output($content);
$this->_display();
}
}
次に、構成でフックを有効にします。
$config['enable_hooks'] = TRUE;
次に、これをフック構成に追加します。
$hook['display_override'][] = array(
'class' => '',
'function' => 'custom_output',
'filename' => 'custom_output.php',
'filepath' => 'hooks'
);
最後に、「custom_output.php」ファイルをhooksディレクトリに追加し、これを追加します。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* Customize the output
*/
function custom_output()
{
$CI =& get_instance();
$CI->output->my_output();
}
クラス変数にアクセスする必要がない場合は、custom_output()
関数で出力を直接編集するだけで、クラスをオーバーライドする必要はありませんOutput
。
非常にハッキーですが、機能します。:)