我不知道这是否重复,我找不到任何东西。对不起。
好吧,所以我做了几个这样的课程:
abstract class Bank(){}
class HB extends Bank(){}
class NO extends Bank(){}
class BankController(){}
class Contract(){}
我正在使用它们:
$contract = new Contract();
$bank = new HB();
$bankC = new BankController($bank);
$bankC->setContract($contract)->processContract()->sendRequest();
我的问题是,我在哪里放置BankController?因为我不想把它们放在控制器文件夹中,因为我不想通过URL访问它们。 你们会做什么?或者你是否创建了一个新文件夹?
答案 0 :(得分:1)
您可以通过使用下划线启动名称来使控制器功能变为私有。 因此,例如,如果您将它放在控制器文件夹中但是_Contract不会,则可以访问Contract。如果您可能需要一天,您仍然可以在控制器文件中使用它。
答案 1 :(得分:1)
您可以创建自定义核心控制器:
http://ellislab.com/codeigniter/user-guide/general/core_classes.html
如果你不想在网址上创建一个库,那么你可以创建一个库:
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 COntroller上
class HB extends CI_Controller
{
public function __construct(){
parent::__construct();
$this->load->library('bankfolder/bank');
}
public function index()
{
$this->bank->setContract($contract)->processContract()->sendRequest();
}
}
这只是一个示例而非您的工作代码