2012年7月11日水曜日

2012年07月11日 講義097日目

2012年07月11日
講義097日目
------------------------------1H------------------------------
------------------------------2H------------------------------
★リリース実習
●SVN
・staging環境のソースをtrunkにコミット
  svn ci -m ""
・staging環境で発生したエラーを解消する
  問題点を開発に報告する
☆バイナリファイルを16進数で編集するエディタとかがある
  意図的に壊れたファイルを作るなどができる
------------------------------3H------------------------------
------------------------------4H------------------------------
★リリース実習
●バリデーション
・バリデーションを色々と試行錯誤
ユーザ新規登録モジュールを作成
  カスタムバリデータの作成
    ユーザネーム、メールアドレスの重複をチェックするバリデータ
  バリデーションconfirm.ymlを作成
------------------------------5H------------------------------
★リリース実習
●dev.shonanbbs.comの問題点解決
・画像のエラーを解消
  カスタムバリデータの作成
  /lib/validate/myUploadImageValidator.class.phpの作成
●バリデーターの拡張
・sfFileValidatorの拡張
validator側を編集
class myUploadImageValidator extends sfFileValidator
{
    public function execute(&$value, &$error)
    {
        //画像の正常性チェック(myUtil使用)
        $id = myUtil::getFileExtId($value["tmp_name"]);
        //(myUtil未使用の場合)
        //$ids = @getimagesize($value["tmp_name"]);
        //$id = ids[2];

        $image_types = sfConfig::get("sf_image_types");
        if(@exif_imagetype($value["tmp_name"]) !== $id || !array_key_exists($id, $image_types)){
            $error = $this->getParameter("mime_type_error");
            return false;
        }
        //php.iniの画像サイズを超える
        if($value["error"] === 1){
            $error = $this->getParameter("max_size_error");
            return false;
        }
        if(!parent::($value, $error)){
            return false;
        }
       
        return true;
    }
}

・yml側の編集
fields:
  content:
    required:
      msg: 内容を入力してください。
  nickname:
    required:
      msg: 名前を入力してください。
  photo:
    file:       True
    sfFileValidator:
      mime_types:
        - 'image/gif'
        - 'image/jpeg'
        - 'image/png'
        - 'image/x-png'
        - 'image/pjpeg'
      mime_types_error: GIFとPNGとJPEGの画像のみ許可されます
      max_size:         512000
      max_size_error:   最大のサイズは512KBです
------------------------------6H------------------------------
★リリース実習
●SVN
・dev環境の変更をbranchesにコミットする
・staging環境で試しのmergeをする
svn merge --dry-run -r 現在のリビジョン:HEAD(最新のリビジョン) svn://localhost/shonanbbs/branches
  問題が無ければ
svn merge --dry-run -r 現在のリビジョン:HEAD(最新のリビジョン) svn://localhost/shonanbbs/branches
  staging環境で動作の確認ができたらコミットする
・本番環境でsvn up
  コンフリクトが発生してたら解消
・ディレクトリの書き込み権限を確認
・サーバのメンテナンスを表示してたhtaccessを元に戻して完了
-----------------------------memo------------------------------
☆参照渡し
&$valueとかを使うと容量が軽い

0 件のコメント:

コメントを投稿