2016-04-07 50 views
0

Bu yüzden bir sistem kurdum ve şimdi yukarı çıkıyorum. Ben Codeigniter MVC framework ve PHP Storm kullanarak Im, benim görüşüme göre büyük bir yığın matematik var. bakın feryat.Yeni başlayanlar için Refactoring

foreach ($records as $row) : 

      $join_date = $row->start_date; 
      $date1 = new DateTime('now'); 
      $date2 = new DateTime($join_date); 

      $p = $row->start_amount; 
      $i = $row->interest; 
      $c = 12; // compound frequency set to monthly 
      $n = ((int)$date1->diff($date2)->format("%m"))/12; 
      $r = $row->monthly_deposits; 
      $x = $i/$c; 
      $y = pow((1 + $x), ($n * $c)); 
      $Total_balance = $p * $y + ($r * (1 + $x) * ($y - 1)/$x); 

      $remain = 365 - $date1->diff($date2)->format("%a days"); 

      $Total_Deposits = ($row->monthly_deposits * (int)$date1->diff($date2)->format("%m")) + $row->start_amount; 
      $Total_Int = $Total_balance - $Total_Deposits; 

      $originalDate = $row->start_date; 
      $newDate = date("jS \of F Y", strtotime($originalDate)); 

      // Add field values to get row total 
      $rowTotal = $Total_balance; 

      // Add row total to grand total 
      $grandTotal += $rowTotal; 
      ?> 

Böylece benim kodunda değişkenleri çağırabilir ihtiyaç ve döngü içinde olması gerekir.

Bunu yapmanın en iyi yolu, matematik modelini ve döngü içinde this>model>modelname gibi bir şeye koydum mu göstereyim?

Teşekkürler çocuklar, kod, düzenli tutmanın en iyi yolundan emin değiller.

+2

Neden bu kodun tamamını doğrudan modeldeki bir işleve sokmayın, bu işlevi kontrol cihazında arayın ve döndürdüğü verileri doğrudan görüntüye gönderin. Görüş, o kadar çok iş mantığına sahip olmamalıydı. – Keeleon

+0

Ahh bu çizgiyi çizdiğim için teşekkürler. – Beep

+0

'u artı bir modele tekrar girmek için bir tane deneyeceğim. – cartalot

cevap

0

Görünümler, temel olarak denetleyicilerinizde neyi hesapladığınızı göstermek içindir. Bunu genel bir kural olarak kabul edin (bu, modelinizde veya gerektiğinde görüntülemede bir şey hesaplayamayacağınız anlamına gelmez).

aşağıdaki yapacağını, temiz ve anlamlı kodunu tutmak için:

Model

class Random_model extends CI_Model { 
    function get_records() { 
     // access the database and return the rows you need 
    } 
} 

Kontrolör

function whatever() { 
    $data = array(
     'first_result' => '', 
     'second_result' => '' 
    ); 

    $this->load->model('random_model'); 
    $records = $this->random_model->get_records(); 
    foreach ($records as $row) { 
     // do here the huge chunk of math and 
     // put in $data the results you need to display 
    } 
    $this->load->view('myview', $data) 
} 

Görünüm

İlgili konular