Расширение CI с собственной библиотекой - PullRequest
2 голосов
/ 09 августа 2010

Я пытаюсь расширить свой КИ с помощью пользовательской библиотеки, которую планирую использовать для расчета временной стоимости денег.Проблема заключается в том, что всякий раз, когда я загружаю класс, я получаю внутреннюю ошибку сервера, и я не совсем уверен, почему.Кроме того, если есть какие-либо другие предложения, пожалуйста, дайте мне знать.

Спасибо

Вот контроллер, куда я пытаюсь загрузить библиотеку.

class Timevalueshow extends Controller{

    $params = array('years' => 0, 
                    'rate' => 0, 
                    'principle' => 0, 
                    'periods' => 0, 
                    'isCont' => true
                    );

    $this->load->library('timevalue',$params);

    function index(){       

        $this->load->view('Timevalueshow_view');
        return true;
    }

}

Вот библиотека, сохраненная в приложении / библиотеки

class Timevalue{

    private $years;
    private $rate;
    private $principle;
    private $periods;
    private $isCont;


    //zeros to test
    function Timevalue($params) {  
        $this->years = $params['years'];  
        $this->rate = $params['rate'];
        $this->principle = $params['principle'];  
        $this->periods = $params['periods']; 
        $this->isCont = $params['isCont'];
    }
    //General Getters
    function getYears(){
        return $this->years;
    }
    function getRate(){
        return $this->rate;
    }
    function getPrinciple(){
        return $this->principle;
    }
    function getPeriods(){
        return $this->periods;
    }

    //Factors
    function FVFactor(){
        if($this->isCont){
            $new_rate = $this->rate / $this->periods;
            $new_periods = $this->periods * $this->years;
            return pow(1+$new_rate,$new_periods);
        }
        else{
            return exp($this->rate*$this->years);
        }   
    }

    function PVFactor(){
        if($this->isCont){
            return pow($this->FVFactor(),-1);
        }
        else{
            return pow($this->FVFactor(),-1);
        }
    }

    //General Print
    function leprint(){
        echo "<br />Years: " . $this->years;  
        echo "<br />Rate(dec): " . $this->rate;
        echo "<br />Principle: $" . $this->principle;  
        echo "<br /># of Periods: " . $this->periods;
        echo "<br />isCont: " . ($this->isCont ? "True" : "False");
    }
}

1 Ответ

1 голос
/ 09 августа 2010

Вашему контроллеру нужен конструктор.Это должно выглядеть так:

class Timevalueshow extends Controller{

    function __construct(){
        parent::__construct();
        $params = array('years' => 0, 
            'rate' => 0, 
            'principle' => 0, 
            'periods' => 0, 
            'isCont' => true
        );
        $this->load->library('timevalue',$params);
    }

    function index(){       
        $this->load->view('Timevalueshow_view');
    }
}

Только PHP5 использует функцию __construct.В PHP4 это должно выглядеть так:

function Timevalueshow(){
    parent::Controller();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...