0

Codeigniter を使用してアプリケーションの設計を決定する必要があります。

PDFを作成するためのライブラリを呼び出すコントローラーのメソッドがあります。また、数値を引数として取り、文字列を返すクラスもあります(数値は口頭で)。

このすべてのクラス間でデータを渡すためのベスト プラクティスは何かを知りたいです。これは、すべてのライブラリー (ステップ 2 とステップ 3 の間) を呼び出し、準備されたすべてのデータを PDF を作成するモデルに提供するコントローラーのタスクですか。または、これは、数値を文字列に変換するクラスをロードして呼び出すことにより、提供された生データを変換するモデル自体のタスクですか。

疎結合、モジュール性、およびコードの明快さの点で最適なソリューションは何でしょうか。

これはコントローラーです:

class Payu extends CI_Controller
{
     public function raport($task_id)
     {
           /* (step 1) Load necessarty models */
           $this->load->model('MTasks');
           $this->load->model('mpdfinvoice');

           /* (step 2) task details from DB */
           $task_details = $this->MTasks->getTaskDetails($task_id);

           /* (step 3) create PDF that will be send */
           $this->mpdfinvoice->pdf($task_details);

           /* (step 4) compose an email with attached pdf */
           $this->email->from($this->config->item('noreply_email'));
           $this->email->to($task_details['email']);
           $this->email->attach('invoiceJustCreated.pdf');
           $this->email->subject('opłaciłes to zlecenie');
           $message = 'some message goes here';
           $this->email->message($message);
           $this->email->send();


     }
}


 This is a model that creates PDF file (called by controller)

 class mpdfinvoice extends CI_Model
 {
     public function pdf($task_details)
     {
          /* (step 1) load necesary library and helper */
          $this->load->library(array('fpdf' ));
          $this->load->helper('file');

          /* (step 2) set PDF page configuration*/              
          $this->fpdf->AddPage();
          $this->fpdf->AddFont('arialpl','','arialpl.php');
          $this->fpdf->SetFont('arialpl','',16);

          /* (step 3) show data on PDF page */              
          $this->fpdf->cell('','',$task_details['payment_amount'] ,1);

          /*  I want to have "payment amount" verbally here 
              So Should I load and call the convert class here or
              should I have this data already prepared by the controller
              and only output it ? */

     }
 }
4

2 に答える 2

0

PDFまたはその他のファイルの作成と、値間のすべての変換がモデルで発生することをお勧めします。次に、コントローラーは、適切なビューに渡すためにモデルから取得するデータを決定し、その方法を認識します表示します。

コントローラーを使用して、データを直接表示 (出力) したり、データベースにアクセスしてファイルを作成したりしないでください。

また、どのような場合でもデータを出力するためにモデルを使用しないでください。

于 2013-04-04T08:09:00.773 に答える