public function generateName($dir, $ext = '', $lettersNumber = 10) { $dir = rtrim($dir, DS); do { $checkName = $name = cText::cropStr(md5(date("YmdHis") . rand(1, 1000)), $lettersNumber); if ($ext != '') { $checkName = $name . '.' . $ext; } } while (!Yii::app()->cFile->set($dir . DS . $checkName)); return $name; }