Skip to content

LaravelとEloquentの永続化パターンサンプル

Notifications You must be signed in to change notification settings

n1215/lara-todo-persistence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaravelとEloquentの永続化パターンのサンプル

laravel.osaka #12のスライド用のサンプルコード。

簡単なTodo管理Webアプリの要件としてTodoItemInterfaceとTodoItemRepositoryInterfaceを6パターンで実装した例。

Laravelパッケージとして実装

インストール

# 作業ディレクトリを作成
mkdir lara-todo-app
cd lara-todo-app

# このリポジトリをクローン
git clone https://github.com/n1215/lara-todo-persistence

# Laravelアプリケーションを作成
composer create-project --prefer-dist laravel/laravel
cd laravel

# ローカルのComposerパッケージをインストール
composer config repositories.local path "../lara-todo-persistence"
composer require n1215/lara-todo-persistence

# .envのDBドライバを変更 sqliteが手軽

# マイグレーション
php artisan migrate

Web API

cd lara-todo-app/laravel
php artisan serve

実装したインターフェース

実装6パターン

実装切り替え

コンフィグをpublish

cd lara-todo-app/laravel
php artisan vendor:publish --tag=laratodo-config

config/laratodo.phpのimplの数値を書き換える

<?php

return [
    /**
     * 実装クラスの切り替え 1〜6
     * 1 => Impls\EloquentAsEntity\TodoItemRepository::class
     * 2 => Impls\EntityContainsEloquent\TodoItemRepository::class
     * 3 => Impls\POPOAndEloquent\TodoItemRepository::class
     * 4 => Impls\POPOAndQueryBuilder\TodoItemRepository::class
     * 5 => Impls\POPOAndPDO\TodoItemRepository::class
     * 6 => Impls\POPOAndAtlas\TodoItemRepository::class
     */
    'impl' => 1,
];

About

LaravelとEloquentの永続化パターンサンプル

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages