技術スタック¶
バックエンド¶
フレームワーク¶
CodeIgniter 3¶
- バージョン: 3.x
- 特徴:
- 軽量なPHPフレームワーク
- MVCパターンの実装
- 豊富なヘルパー・ライブラリ
- シンプルな設定管理
主要設定ファイル:
application/config/config.php: 基本設定application/config/database.php: DB接続設定application/config/routes.php: ルーティング設定application/config/hooks.php: フック設定
PHP¶
- バージョン: 7.4+ 推奨
- 必須拡張:
pdo_mysql: データベース接続mbstring: マルチバイト文字列処理gdまたはimagick: 画像処理- PDFLib: PDF生成(商用ライブラリ)
データベース¶
MySQL / MariaDB¶
- バージョン: MySQL 5.7+ / MariaDB 10.3+
- 文字コード: utf8mb4
- 照合順序: utf8mb4_unicode_ci
- ストレージエンジン: InnoDB
特徴:
- トランザクション対応
- 外部キー制約
- 日本語データの完全サポート
フロントエンド¶
JavaScript ライブラリ¶
jQuery¶
- バージョン: 3.x
- 用途:
- DOM操作
- AJAX通信
- イベント処理
- フォームバリデーション
jQuery UI¶
- 用途:
- 日付ピッカー
- ダイアログ
- ドラッグ&ドロップ
CSSフレームワーク¶
Bootstrap¶
- バージョン: 4.x
- 用途:
- レスポンシブレイアウト
- グリッドシステム
- コンポーネント(ボタン、テーブル、モーダル)
Font Awesome¶
- 用途: アイコン表示
カスタムJavaScript¶
主要ファイル¶
web/ddds/js/
├── cadaveric_transplant/
│ └── common.js # 死体移植共通処理
│ ├── MELD Score計算
│ ├── PELD Score計算
│ └── CTP Score計算
├── living_donor_transplant/
│ └── search.js # 生体移植検索処理
└── modal.js # モーダルダイアログ処理
インフラストラクチャ¶
コンテナ化¶
Docker¶
構成:
services:
web:
image: php:7.4-apache
volumes:
- ./:/var/www/html3
ports:
- "80:80"
- "443:443"
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: xxxxx
MYSQL_DATABASE: TRACERDB7
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
主要パス:
- コンテナ内:
/var/www/html3/ - ホスト:
/opt/services/DDDS/
Webサーバー¶
Apache 2.4¶
主要モジュール:
mod_rewrite: URL書き換えmod_ssl: HTTPS通信mod_headers: HTTPヘッダー制御
.htaccess設定:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
外部ライブラリ¶
PDFLib¶
- 用途: PDF帳票生成
- ライセンス: 商用ライセンス
- インストールパス:
/opt/services/DDDS/pdflib-ext/
セットアップスクリプト: setup-pdflib.sh
BOX SDK¶
- 用途: BOXストレージ連携
- API: REST API
- 認証: OAuth 2.0
セキュリティ¶
CSRF保護¶
- 実装: CodeIgniter標準機能
- トークン名:
csrf_token - 除外URL:
/boxapi/*/detail/downloadApplicationForm
セッション管理¶
- ドライバ:
database - テーブル:
sessionTbl - Cookie設定:
- HTTPOnly: true
- Secure: true (HTTPS時)
- SameSite: Lax
XSS対策¶
- 自動エスケープ: 有効(ビュー出力時)
- 関数:
htmlspecialchars(),html_escape()
開発ツール¶
バージョン管理¶
Git¶
- ブランチ戦略: Git Flow
- メインブランチ:
versionup - 開発ブランチ:
tracer-phase1(現在)
ドキュメント¶
MkDocs + Material¶
- 用途: 本ドキュメントサイトの生成
- インストール:
- 起動:
監視・ログ¶
アプリケーションログ¶
- 出力先:
application/logs/log-YYYY-MM-DD.php - ログレベル: 4(全て記録)
アクセスログ¶
- テーブル:
accessLogTbl - 記録内容: URL、ユーザー、IPアドレス、タイムスタンプ
SQLクエリログ¶
- 実装:
application/hooks/QueryLogger.php - 有効化:
hooks.phpで設定
パフォーマンス¶
キャッシュ¶
- セッションキャッシュ: DB
- ビューキャッシュ: 未使用(動的コンテンツ)
データベース最適化¶
- インデックス: 主要検索カラムに設定
- クエリ最適化: EXPLAIN解析実施済み
バックアップ¶
データベースバックアップ¶
ファイルバックアップ¶
- 対象:
application/,web/,system/ - 除外:
application/logs/,application/cache/