コンテンツにスキップ

技術スタック

バックエンド

フレームワーク

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

  • 用途: 本ドキュメントサイトの生成
  • インストール:
pip install mkdocs mkdocs-material
  • 起動:
mkdocs serve

監視・ログ

アプリケーションログ

  • 出力先: application/logs/log-YYYY-MM-DD.php
  • ログレベル: 4(全て記録)

アクセスログ

  • テーブル: accessLogTbl
  • 記録内容: URL、ユーザー、IPアドレス、タイムスタンプ

SQLクエリログ

  • 実装: application/hooks/QueryLogger.php
  • 有効化: hooks.phpで設定

パフォーマンス

キャッシュ

  • セッションキャッシュ: DB
  • ビューキャッシュ: 未使用(動的コンテンツ)

データベース最適化

  • インデックス: 主要検索カラムに設定
  • クエリ最適化: EXPLAIN解析実施済み

バックアップ

データベースバックアップ

# スキーマ + データのバックアップ
mysqldump -u root -p TRACERDB7 > backup_$(date +%Y%m%d).sql

ファイルバックアップ

  • 対象: application/, web/, system/
  • 除外: application/logs/, application/cache/

関連ドキュメント