この文書はプロジェクト開発におけるプログラム設計の指針です。フレームワークのコーディング指針については別途マニュアルを参照して下さい。

フォーム

テンプレート

フィルタ処理

多重処理の防止

メッセージ

データベース処理

クエリの発行

データのメンテナンス

メール

認証

プロダクション環境の設定

プロダクションサーバで最低限設定が必要な項目の一覧を下表に示す。

ソフトウェア 設定ファイル 設定名 設定値 説明
mars {mars}/config/global_setup.yml debug.output FALSE 例外発生時、画面上にスタックトレースを表示させない。例外は例外ハンドラで補足すること
PHP /usr/local/lib/php.ini display_errors 0 PHP の Fatal エラーを画面に出力させない。エラー内容は Apache のエラーログに出力する (error_log 属性にパスを指定することで出力先を変更可能)
    date.timezone Asia/Tokyo タイムゾーンの指定
    expose_php Off PHP のバージョンを HTTP ヘッダに出力しない

例外のハンドリング

例外のタイプ 例外のパターン 例外のメッセージ
アプリケーション例外
  • 必要なリクエストパラメータが不足している
  • 想定外のパラメータが指定された
  • 画面遷移が異常 (リロードによる多重登録など)
  • (データベース上に) 必ず存在するべきレコードが存在しない
  • ログインが必要なページに未ログイン状態でアクセスした
  • パラメータの指定が不正です
  • 既に登録が完了しています
  • 指定されたデータは存在しません
  • ログインを行って下さい
システム例外
  • データベースサーバに接続できない
  • SQL を発行する際にシンタックスエラーが発生
  • メモリ不足
  • フレームワークの例外 (Mars_IOException、Mars_ParseException など)
  • PHP のエラー (関数の引数が不正、宣言されていない変数が使用されている)
    • Fatal エラー以外の PHP エラーはフレームワークのエラーハンドラによって Mars_ErrorException としてスローされる
  • SQLSTATE[42000] [1044] Access denied for user
  • Integrity constraint violation: 1048 Column 'project_name' cannot be null
  • Out of memory error
  • Class path does not exist. [CustomHelper]
  • str_replace() expects at least 3 parameters, 0 given

パフォーマンスの見直し

プログラムの見直しを行なう場合、以下の点を重点に置いて調査を進めること。

スマートフォン開発 (2012/03/09 追加)