0

I don't know if this is a duplicate, I couldn't find anything. I'm sorry.

Alright, so I've made a couple of classes like this:

abstract class Bank(){}
class HB extends Bank(){}
class NO extends Bank(){}
class BankController(){}
class Contract(){}

and I'm using them like this:

$contract  = new Contract();
$bank      = new HB();
$bankC     = new BankController($bank);
$bankC->setContract($contract)->processContract()->sendRequest();

My question is, where do I put the BankController? Because I don't really wanna put them in the controller folder cause I don't want to access them through the URL. What would you guys do? Or do you create a new folder?

4

2 に答える 2

1

名前をアンダースコアで始めることにより、コントローラー関数をプライベートにすることができます。たとえば、コントラクトをコントローラー フォルダーに配置するとアクセス可能になりますが、_Contract はアクセスできません。いつか必要になる場合は、コントローラーファイル自体で引き続き使用できます。

于 2013-01-27T08:20:17.187 に答える
1

カスタム コア コントローラーを作成できます。

http://ellislab.com/codeigniter/user-guide/general/core_classes.html

または、URL にライブラリが必要ない場合は、ライブラリを作成できます。

http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

application/libraries ディレクトリに bank.php

または、bankfolder/bank.php のようなフォルダーを作成することもできます

class bank()
{

  public function setContract()
  {
     //
  }

  public function processContract()
  {
    //
  }

  public function sendRequest()
  {
    //
  }

}

次にHBコントローラーで

class HB extends CI_Controller
{
  public function __construct(){
    parent::__construct();
    $this->load->library('bankfolder/bank');
  }

  public function index()
  {
    $this->bank->setContract($contract)->processContract()->sendRequest();
  }

}

これは単なるサンプルであり、実際のコードではありません

于 2013-01-27T08:34:06.757 に答える