ホームページ >バックエンド開発 >PHPチュートリアル >実用的なOOP:クイズアプリの構築 - ブートストラップ
優れたオブジェクト指向の設計の基礎である分離コードには、独立したクラスを組み合わせるメカニズムが必要です。サービスレイヤーは、システムの操作を専用のサービスクラスにグループ化することでこれを実現し、さまざまなアプリケーションパーツ(Web、CLIなど)にわたって再利用性を促進します。
プロジェクトのセットアップ(SLIMを使用):軽量のフレームワークである Slimは、シンプルさのために使用されます。
ファイルは、依存関係管理用に提供されています:Quiz Service Interface(
クイズマッパーインターフェイス(
):composer.json
マッパーインターフェイスは、データベースのインタラクションを処理します:
<code class="language-json">{ "require": { "slim/slim": "2.*" }, "autoload": { "psr-4": {"QuizApp\": "./lib/"} } }</code>
エンティティ(Question.php
およびQuiz.php
):
これらのクラスは、クイズの質問とクイズ自体をモデル化します:
<code class="language-php"><?php namespace QuizApp\Service; interface QuizInterface { /** @return Quiz[] */ public function showAllQuizes(); public function startQuiz($quizOrId); /** @return Question */ public function getQuestion(); /** @return bool */ public function checkSolution($id); /** @return bool */ public function isOver(); /** @return Result */ public function getResult(); }</code>
プレースホルダーマッパー(Hardcoded.php
):
テスト用のハードコーディングデータを備えた一時的なマッパー:
<code class="language-php"><?php namespace QuizApp\Mapper; interface QuizInterface { /** @return \QuizApp\Entity\Quiz[] */ public function findAll(); /** @param int $i @return \QuizApp\Entity\Quiz */ public function find($i); }</code>
結論と次のステップ:
この最初の部分は基礎を設定します。 次のパートでは、サービスクラスの実装、実際のデータベースマッパー(おそらく教義を使用している可能性が高い)の作成、およびコントローラーとビューの開発が含まれます。 モジュラー設計により、保守性と拡張性が保証されます。 このパートの完全なソースコードは[ソースコードへのリンク]です。
(簡単に削除されたFAQSセクション。FAQはよく書かれており、別のフォローアップ記事に含めることができます。)
以上が実用的なOOP:クイズアプリの構築 - ブートストラップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。