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 ? */
}
}