共通関数を作成する
各コントローラーやモデルで他に共通する処理がある場合、それぞれのファイルに
処理を実装するとコード量が増えるし後に修正する際に漏れが発生するため
全てのController、Modelで共有出来そうなメソッドは【/protected/compornents/】
にファイルを作成すると管理が楽になる
■実装例
・【/protected/compornents/】配下に"Common.php"を作成 ・各画面からコールしてみる
【/protected/compornents/】配下に”Common.php”を作成
<?php
class Common
{
/**
* ディレクトリ生成
**/
public static function makeDirectory($path, $make_flag = true)
{
$result = false;
// ディレクトリを確認
if(file_exists($path))
{
$result = true;
}
if($result === false)
{
// ディレクトリが存在せずmake_flagがtrueの場合はディレクトリを作成
if($make_flag)
{
mkdir($path, 0755, true);
chmod($path, 0755);
$result = true;
}
}
return $result;
}
}
各画面からコールしてみる
・・・処理
// 保存先を生成
if(Common::makeDirectory($path))
{
// ファイル名を生成
$this->image = sha1(mt_rand().microtime()).'.'.$image->extensionName;
if($image->saveAs($path.$this->image))
{
Yii::app()->user->setFlash('image', 'アップロードエラー');
}
}
・・・処理