เบญเบฒเบเบดเบเบเบตเปเบเปเบฒเบเบกเบฒเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฝเบ
<?php
interface PostRepository
{
public function getById($id): Post;
public function save(Post $post);
public function delete($id);
}
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเปเบเบเบเบฒเบเบเบตเปเปเบเปเบเบดเบ, เบเปเบฒเบซเบฒเบเบงเปเบฒเบกเบฑเบเปเบเปเบเบทเบเบเบฑเบเบชเบดเบเปเบเบเบตเปเบเบฐเบเปเบฒเปเบเป repositories, เบงเบดเบเบตเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบถเบเบเบฑเบเบเบถเบเบกเบฑเบเบเบฐเบเบทเบเปเบเบตเปเบกเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒ:
<?php
interface PostRepository
{
public function getById($id): Post;
public function save(Post $post);
public function delete($id);
public function getLastPosts();
public function getTopPosts();
public function getUserPosts($userId);
}
เบงเบดเบเบตเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเปเบฒเบเบเบญเบเปเบเบ Eloquent, เปเบเปเบเบฒเบเปเบซเบผเบเบเบฑเปเบ entity เบซเบผเบฒเบเปเบเบตเบเปเบเบเบตเปเบกเบตเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบเบถเบเบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบตเบเบตเปเบชเบธเบ, เปเบฅเบฐเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบตเปเปเบเบชเบนเปเบซเปเบญเบเบฎเบฝเบ repository เปเบเบดเปเบเบเบทเบงเปเบฒเบกเบตเปเบซเบเบเบปเบ. เปเบเบฑเบเปเบเบงเบเบฑเปเบเบเป? เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบเบชเบฐเปเบเบฒเบฐเบชเบฒเบเบเบฒเปเบเปเปเบเปเบเบเบฒเบเปเบเปเบเบญเบเบเบตเปเบญเบญเบเปเบเบฑเบเบชเบญเบเบชเปเบงเบ. เบชเปเบงเบเบเปเบฒเบญเบดเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเบเบฝเบ.
เบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบฒเบโเบเบฝเบโเบกเบฒเบโเบเบฐโเบเบฒเบโเปเบกเปเบโ:
- เบเบฒเบเบเปเปเบชเปเบฒเบเบงเบฑเบเบเบธเปเบซเบกเปเปเบฅเบฐเบชเบดเปเบเบเปเบฒเบเบฒเบ PostRepository::save
- PostRepository::getById, เบเบฒเบเบซเบกเบนเบเปเบเป entity เปเบฅเบฐ summoning PostRepository::save
- เบชเบดเปเบเบเปเบฒเบเบฒเบ PostRepository::delete
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฝเบเบเปเปเปเบเปเปเบเปเบงเบดเบเบตเบเบฒเบเบเบถเบเบเปเปเบกเบนเบ. เปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเปเบฒเบ, เบเบฝเบเปเบเป get* เบงเบดเบเบตเบเบฒเบเบเบทเบเบเปเบฒเปเบเป. เบเปเบฒเบเปเบฒเบเบญเปเบฒเบเบเปเบฝเบงเบเบฑเบ เบซเบผเบฑเบเบเบฒเบเปเบเปเบเบชเปเบงเบเบเบฒเบเปเบเปเบเบญเบ (เบเบปเบเปเบฒเบ I ะฒ เปเบเปเปเบ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฐเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเปเบเปเบเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฐเบซเบเบฒเบเปเบซเบเปเปเบเบตเบเปเบเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเบซเบเปเบญเบเบชเบญเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบกเบฑเบเปเบเบดเบเปเบงเบฅเบฒเบเบตเปเบเบฐเปเบเปเบเบกเบฑเบเปเบเบเบชเบญเบ. เบงเบดเบเบตเบเบฒเบ getById เปเบกเปเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเบเบฑเบเบชเบญเบ, เปเบเปเบเปเบญเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบกเบฑเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบญเบฑเบเบเบตเปเปเบฅเบฑเบเบเปเบญเบเบเปเปเบกเบฒ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฝเบเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบฎเปเบเบฐเปเบเบเบเบญเบเบชเปเบงเบเบเบฒเบเบเบฝเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบฑเปเบเบเบฑเปเบเปเบเปเบฅเบทเปเบญเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบฐเบฅเบทเบกเบเปเบฝเบงเบเบฑเบเบกเบฑเบ.
เบชเปเบงเบ Read เปเบเบดเปเบเบเบทเบงเปเบฒเบเปเบญเบเบเปเปเบกเบตเบเบฐเปเบซเบเบเบซเบผเบฒเบ, เปเบเบฒเบฐเบงเปเบฒเปเบเบดเบเปเบกเปเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบ Eloquent เบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบขเปเบฒเบเบขเบนเปเบเบตเปเบเบตเป. เบเบฐเบเบฑเปเบเบเบทเปเบซเปเบญเบเบฎเบฝเบเปเบเบงเปเบ? เบชเบฒโเบกเบฒเบ ReadPostRepository, เปเบเปเบเบฑเบเปเบกเปเปเบเบ Repository เบฅเบฒเบงเบกเบตเบเบงเบฒเบกเบเปเบฝเบงเบเปเบญเบเบเบฝเบเปเบฅเบฑเบเบเปเบญเบเปเบฅเปเบง. เบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบ PostQueries:
<?php
interface PostQueries
{
public function getById($id): Post;
public function getLastPosts();
public function getTopPosts();
public function getUserPosts($userId);
}
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบกเบฑเบเบเปเบงเบ Eloquent เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบ:
<?php
final class EloquentPostQueries implements PostQueries
{
public function getById($id): Post
{
return Post::findOrFail($id);
}
/**
* @return Post[] | Collection
*/
public function getLastPosts()
{
return Post::orderBy('created_at', 'desc')
->limit(/*some limit*/)
->get();
}
/**
* @return Post[] | Collection
*/
public function getTopPosts()
{
return Post::orderBy('rating', 'desc')
->limit(/*some limit*/)
->get();
}
/**
* @param int $userId
* @return Post[] | Collection
*/
public function getUserPosts($userId)
{
return Post::whereUserId($userId)
->orderBy('created_at', 'desc')
->get();
}
}
เบเบฒเบเปเบเปเบเบญเบเบเปเบญเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบปเบงเบขเปเบฒเบเปเบ AppServiceProvider:
<?php
final class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->bind(PostQueries::class,
EloquentPostQueries::class);
}
}
เบซเปเบญเบเบฎเบฝเบเบเบตเปเบกเบตเบเบฐเปเบซเบเบเปเบฅเปเบง. เบฅเบฒเบงเบฎเบฑเบเบฎเบนเปเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบญเบเบเบปเบเปเบเบเบเบฒเบเบเบปเบเบเปเบฒเปเบซเบเปเบเบเบนเปเบเบงเบเบเบธเบกเบซเบผเบทเบเบฑเปเบ entity. เปเบเบเบปเบงเบเบงเบเบเบธเบกเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฑเปเบเบเบตเป:
<?php
final class PostsController extends Controller
{
public function lastPosts(PostQueries $postQueries)
{
return view('posts.last', [
'posts' => $postQueries->getLastPosts(),
]);
}
}
เบงเบดเบเบตเบเบฒเบ PostsController::lastPosts เบเบฝเบเปเบเปเบเปเปเบซเปเบกเบตเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบขเปเบฒเบ PostsQueries เปเบฅเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบกเบฑเบ. เปเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบทเปเบญเบกเบเปเป PostQueries เบเบฑเบเบซเปเบญเบเบฎเบฝเบ EloquentPostQueries เปเบฅเบฐเบเบฑเปเบเบเบตเปเบเบฐเบเบทเบเบเปเบฝเบเปเบเบฑเบเบเบปเบงเบเบงเบเบเบธเบก.
เปเบซเปเบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบดเบเบปเบกเบซเบผเบฒเบ. เบซเบฅเบฒเบเบเบฑเบเบเบปเบเบเปเปเบเบฒเบเบตเปเบเบตเบเบซเบเปเบฒเบเปเบงเบเบชเบดเปเบเบเบดเบกเบซเบฅเปเบฒเบชเบธเบ. เบชเบดเปเบเบเบดเบกเบเบตเปเบเบดเบเบปเบกเบเบตเปเบชเบธเบเปเบกเปเบเบเบฑเบเบญเปเบฒเบเปเบฅเบทเปเบญเบเป. เบเบฒเบเบเปเปเบกเบนเบเบเปเปเปเบเปเบเบฑเบเบเบฒเบเบเบฒเบเปเบซเบผเบเบเบฑเปเบเบเปเบฒเบงเปเบเปเบเบตเบซเบผเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบเบปเบฒเปเบเปเบเบฒเบเปเบเปเปเบเบกเบฒเบเบเบฐเบเบฒเบ - cache. เบเบญเบเปเปเบทเบญเปเบเบเบฒเบเบเบฒเบเบเปเปเบกเบนเบเปเบฅเปเบง, เบเบฒเบเบเปเบฒเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบเบญเบเบเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบตเปเปเปเบฒเบฐเบชเบปเบกเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฒเบเบขเปเบฒเบ - memcached เบซเบผเบท redis.
Caching เบเบฒเบกเปเบซเบเบเบปเบเบกเบฑเบเบเบฐเบเปเปเบชเบฑเบเบชเบปเบ, เปเบเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบกเบฑเบเบขเบนเปเปเบ EloquentPostQueries เบเปเปเบเบทเบเบเปเบญเบเบซเบผเบฒเบ (เบเปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบงเปเบฒ เบซเบผเบฑเบเบเบฒเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบฝเบง). เบกเบฑเบเปเบเบฑเบเบเปเบฒเบกเบฐเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบเปเปเบกเปเปเบเบ เบญเบญเบเปเบเบ เปเบฅเบฐเบเบฐเบเบดเบเบฑเบ caching เปเบเบฑเบเบเบฒเบเบเบปเบเปเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเปเบเบเป:
<?php
use IlluminateContractsCacheRepository;
final class CachedPostQueries implements PostQueries
{
const LASTS_DURATION = 10;
/** @var PostQueries */
private $base;
/** @var Repository */
private $cache;
public function __construct(
PostQueries $base, Repository $cache)
{
$this->base = $base;
$this->cache = $cache;
}
/**
* @return Post[] | Collection
*/
public function getLastPosts()
{
return $this->cache->remember('last_posts',
self::LASTS_DURATION,
function(){
return $this->base->getLastPosts();
});
}
// ะดััะณะธะต ะผะตัะพะดั ะฟัะฐะบัะธัะตัะบะธ ัะฐะบะธะต ะถะต
}
เบเปเปเบชเบปเบเปเบเบเบฒเบเปเบเปเบเบญเบ Repository เปเบเบเบนเปเบเปเปเบชเปเบฒเบ. เบเปเบงเบเปเบซเบเบเบปเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบเบเบฒเบเบญเบฑเบ, เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบฑเปเบเบเบทเปเปเบเบเบฒเบเปเบเปเบเบญเบเบชเปเบฒเบฅเบฑเบ caching เปเบ Laravel เบเปเบงเบเบงเบดเบเบตเบเบตเป.
ะะปะฐัั CachedPostQueries เบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบฝเบเปเบเป. $this->cache->เบเบทเปเปเบงเป เบเบงเบเปเบเบดเปเบเบงเปเบฒเบฅเบฒเบเบเบฒเบเบเบตเปเบขเบนเปเปเบ cache เปเบฅเบฐเบเปเบฒเบเปเปเปเบกเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบซเบฒ callback เปเบฅเบฐเบเบฝเบเบเปเบฒเบเบตเปเบชเบปเปเบเบเบฑเบ cache. เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบซเปเบญเบเบฎเบฝเบเบเบตเปเปเบเบปเปเบฒเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. เบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเบซเปเบญเบโเบฎเบฝเบโเบเบฑเบโเบซเบกเบปเบโเบเบตเปโเบขเบนเปโเปเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเปเบเบทเปเบญโเบฎเปเบญเบโเบเปโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบญเบโเบเบฒเบโเปเบเปโเบเบญเบโเปเบเปโ PostQueries เปเบเปเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบซเปเบญเบเบฎเบฝเบ CachedPostQueries. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบฅเบฒเบงเปเบญเบ CachedPostQueries เบเบนเปเบเปเปเบชเปเบฒเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฑเปเบเปเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต EloquentPostQueriesเปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบ "เบเบตเปเปเบเปเบเบดเบ". เบเบงเบเปเบฎเบปเบฒเบเปเบฝเบเปเบเบ AppServiceProvider:
<?php
final class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->bind(PostQueries::class,
CachedPostQueries::class);
$this->app->when(CachedPostQueries::class)
->needs(PostQueries::class)
->give(EloquentPostQueries::class);
}
}
เบเบงเบฒเบกเบเบฒเบเบเบฐเบซเบเบฒเบเบฑเบเบซเบกเบปเบเบเบญเบเบเปเบญเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเปเบเบฑเบเบเปเบฒเบกเบฐเบเบฒเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเบขเบนเปเปเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเบฝเบเบซเบเบถเปเบเบซเปเบญเบเบฎเบฝเบเปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเบเบเบธ. เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเปเปเปเบเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ.
เปเบเปเบเบญเบ, เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเป, เบกเบฑเบเบเบฑเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบเบทเบเบเปเบญเบเปเบเบทเปเบญเปเบซเปเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบทเบเบฅเบปเบเบเปเปเบงเบฒเบเบชเบฒเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบงเบฅเบฒ, เปเบเปเบเบทเบเบฅเบถเบเบเบฑเบเบเบต. เปเบเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบชเบดเปเบเปเบฅเบฑเบเบเปเบญเบ.
เปเบชเบฑเปเบเบเบฒเบเบฅเบธเปเบก: เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเปเบซเบเบถเปเบ, เปเบเปเบชเบญเบเปเบกเปเปเบเบ. เบเบปเบงเบขเปเบฒเบ เบเบฒเบเปเบเปเบเปเบเบเบเบงเบฒเบกเบฎเบฑเบเบเบดเบเบเบญเบเบเบญเบเบเปเบฒเบชเบฑเปเบ (CQRS) เบชเบฐโเปเบซเบเบตโเปเบซเปโเปเบเบโเบญเบญเบโเบขเปเบฒเบโเบชเบปเบกโเบเบนเบโเบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบฒเบโเบญเปเบฒเบโเปเบฅเบฐโเบเบฝเบโเปเบโเบฅเบฐโเบเบฑเบโเบเบฒเบโเปเบเปโเบเบญเบโ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบกเบฒเบซเบฒเบเบฃเบฐเบญเบปเบเปเบเบเบเปเบฒเบ เบซเบผเบฑเบเบเบฒเบเปเบเปเบเบชเปเบงเบเบเบฒเบเปเบเปเบเบญเบ, เปเบเบดเปเบเปเบเบฐเบเปเบฒเบงเปเบฒเบเปเบญเบเบเปเบฒเบเบดเบเปเบฒเบเบฒเบเปเบเบเบฒเบเบเบฑเบเบเบฒเบเบฎเบนเบเปเบเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเปเบฅเบฐเปเบญเบปเบฒเบญเบฑเบเบซเบเบถเปเบเบเบฒเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเปเบเบฑเบเบเบดเบเบชเบฐเบเบต :) เปเบเปเบเบญเบ, เบเปเปเปเบกเปเบเบเบธเบเปเปเบเบเบเบฒเบเบเปเบญเบเบเบฒเบเบเบปเบงเบซเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบซเบเปเบงเบเบเบฒเบ, เปเบเปเบเปเบญเบเบเบฐเปเบเปเบเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบฑเบเบเปเบฒเบ. เบเบฒเบเบเบฑเบเบเบฐเบเบฒ, เบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบชเปเบฒเบเบซเปเบญเบเบฎเบฝเบ PostQueries เบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเบเบฐเบเบดเปเบเบเบเปเบฒเบ Eloquent:
<?php
final class PostQueries
{
public function getById($id): Post
{
return Post::findOrFail($id);
}
// ะดััะณะธะต ะผะตัะพะดั
}
เปเบกเบทเปเบญเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒเปเบเบตเบเบเบทเปเบ, เบเปเบงเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเปเบฒเบเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเปเบเบญเบ (เบซเบผเบทเบซเปเบญเบเบฎเบฝเบเบเบตเปเบเปเปเบกเบตเบเบปเบงเบเบปเบ) เปเบเบเบซเปเบญเบเบฎเบฝเบเบเบตเป. PostQueries, เบเบฑเบเบฅเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบกเบฑเบเปเบเบซเบฒเบซเปเบญเบเบฎเบฝเบ EloquentPostQueries เปเบฅเบฐเปเบเบซเบฒเปเบเบเบเบฒเบเบเบตเปเบเปเบญเบเปเบเปเบญเบฐเบเบดเบเบฒเบเบเปเบญเบเบซเบเปเบฒเบเบตเป. เบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ.
tricks เบเบฑเบเบซเบกเบปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฑเบเบซเปเบญเบเบฎเบฝเบ, เบเบฒเบเปเบเปเบเบญเบ, เบเบฒเบเบชเบตเบเบขเบฒเปเบเบดเปเบเบเบฒเบญเบฒเปเบช ะธ CQRS เปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเบขเปเบฒเบเบฅเบฐเบญเบฝเบเปเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com