เดเดดเดฟเดเตเด เดเดดเตเด เดเดพเตป เดเดดเตเดคเดฟ
<?php
interface PostRepository
{
public function getById($id): Post;
public function save(Post $post);
public function delete($id);
}
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ, เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเดพเตฝ, เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฐเตเดคเดฟเดเตพ เด เดตเดฏเดฟเตฝ เดเตเตผเดเตเดเดพเดฑเตเดฃเตเดเต:
<?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);
}
เด เดฐเตเดคเดฟเดเตพ เดเดฒเตเดเตเดตเดจเตเดฑเต เดธเตโเดเตเดชเตเดชเตเดเดณเดฟเดฒเตเดเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เดเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดเตเดฒเดพเดธเตเดเตพ เดธเตเดตเดฏเด เดเตเดฃเตเดเตเดตเดฐเดพเดจเตเดณเตเดณ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดเดตเตผเดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดฎเดฟเดเดเตเด เดเดถเดฏเดฎเดฒเตเดฒ, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เดเตเดฒเดพเดธเตเดเดณเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดฏเตเดเตเดคเดฟเดธเดนเดฎเดพเดฃเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต. เด เดเตเดเดจเตเดฏเดพเดฃเต? เดเดพเตป เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เด เดเดจเตเดฑเตผเดซเตเดธเดฟเดจเต เดฐเดฃเตเดเต เดญเดพเดเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเต. เดฐเตเดคเดฟเดเดณเตเดเต เดเดฆเตเดฏ เดญเดพเดเด เดเดดเตเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฑเตเดฑเตเดฑเต เดเดชเตเดชเดฑเตเดทเตป เดเดคเดพเดฃเต:
- เดเดฐเต เดชเตเดคเดฟเดฏ เดตเดธเตเดคเตเดตเดฟเดจเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดพเดฃเดตเตเด เดตเตเดฒเตเดฒเตเดตเดฟเดณเดฟเดฏเตเด เดชเตเดธเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ:: เดธเตเดตเต
- เดชเตเดธเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ::getById, เดเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดเตเดคเตเดฐเดฟเดฎเดคเตเดตเดตเตเด เดธเดฎเตปเดธเตเด เดชเตเดธเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ:: เดธเตเดตเต
- เดตเตเดฒเตเดฒเตเดตเดฟเดณเดฟ เดชเตเดธเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ:: เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด
เดเดดเตเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดเตเดเตฝ เดฐเตเดคเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดฑเตเดกเต เดเดชเตเดชเดฑเตเดทเดจเตเดเดณเดฟเตฝ, get* เดฐเตเดคเดฟเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดณเตเดณเต. เดเตเดฑเดฟเดเตเดเต เดตเดพเดฏเดฟเดเตเดเดพเตฝ เดเดจเตเดฑเตผเดซเตเดธเต เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตฝ เดคเดคเตเดตเด (เดเดคเตเดคเต I ะฒ เดธเตเดณเดฟเดกเต), เด เดชเตเดชเตเตพ เดเดเตเดเดณเตเดเต เดเดจเตเดฑเตผเดซเตเดธเต เดตเดณเดฐเต เดตเดฒเตเดคเดพเดฃเตเดจเตเดจเตเด เดเตเดฑเดเตเดเดคเต เดฐเดฃเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเดณเตเดเตเดเดฟเดฒเตเด เดจเดฟเตผเดตเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเด. เด เดคเดฟเดจเต เดฐเดฃเตเดเดพเดฏเดฟ เดนเดฐเดฟเดเตเดเตเดฃเตเด เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดฐเตเดคเดฟ getById เดฐเดฃเตเดเดฟเดฒเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดเตเดฎเตเดชเตเตพ, เด เดคเดฟเดจเตเดฑเต เดจเดเดชเตเดชเดพเดเตเดเดฒเตเดเตพ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดจเดฎเตเดเตเดเต เดเดคเต เดเตเดฑเดเตเดเต เดเดดเดฟเดเตเดเต เดเดพเดฃเดพเด. เดฎเตเตป เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดพเตป เดเดดเตเดคเดฟเดฏ เดญเดพเดเดคเตเดคเดฟเดจเตเดฑเต เดเดชเดฏเตเดเดถเตเดจเตเดฏเดคเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดดเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เด เดคเดฟเดจเดพเตฝ เดเดคเดฟเตฝ เดเดพเตป เด เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดฎเดฑเดเตเดเตเด.
เดตเดพเดฏเดจเดพ เดญเดพเดเด เด เดคเตเดฐ เดเดชเดฏเตเดเดถเตเดจเตเดฏเดฎเดฒเตเดฒเตเดจเตเดจเต เดเดจเดฟเดเตเดเต เดคเตเดจเตเดจเตเดจเตเดจเต, เดเดพเดฐเดฃเด เดเดฒเตเดเตเดตเดจเตเดฑเดฟเดจเต เดชเตเดฒเตเด เดเดตเดฟเดเต เดจเดฟเดฐเดตเดงเดฟ เดจเดเดชเตเดชเดพเดเตเดเดฒเตเดเตพ เดเดฃเตเดเดพเดเดพเด. เดเตเดฒเดพเดธเดฟเดจเต เดเดจเตเดคเต เดชเตเดฐเดฟเดเดฃเด? เดเดดเดฟเดฏเตเด ReadPostRepository, เดชเดเตเดทเต เดเตเดเดชเตเดฒเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดธเดเดญเดฐเดฃเดฟเดฏเดพเดฃเต เด เดฆเตเดฆเตเดนเดคเตเดคเดฟเดจเต เดเดคเดฟเดจเดเด เดชเตเดฐเดธเดเตเดคเดฟ เดเตเดฑเดตเดพเดฃเต. เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฑเตเดคเต เดเดดเดฟเดฏเตเด เดชเตเดธเตเดฑเตเดฑเตเดเตเดตเดฑเดฟเดเตพ:
<?php
interface PostQueries
{
public function getById($id): Post;
public function getLastPosts();
public function getTopPosts();
public function getUserPosts($userId);
}
เดเดฒเตเดเตเดตเดจเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต:
<?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);
}
}
เด เดเตเดฒเดพเดธเต เดเดคเดฟเดจเดเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต. เดเตบเดเตเดฐเตเดณเตผเดฎเดพเดฐเตเดฏเต เดเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดเตเดฒเดพเดธเดฟเดจเตเดฏเต เดเดดเดฟเดตเดพเดเตเดเดฟเดเตเดเตเดฃเตเดเต เด เดตเตป เดคเดจเตเดฑเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตเดจเตเดจเต. เดเดฐเต เดเตบเดเตเดฐเตเดณเดฑเดฟเตฝ เดเดคเต เดเดคเตเดชเตเดฒเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด:
<?php
final class PostsController extends Controller
{
public function lastPosts(PostQueries $postQueries)
{
return view('posts.last', [
'posts' => $postQueries->getLastPosts(),
]);
}
}
เดฐเตเดคเดฟ PostsController::lastPosts เดเตเดฑเดเตเดเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต เดชเตเดธเตเดฑเตเดฑเตเดเตพ เด เดคเดฟเดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดเตเดเตพ เดฒเดฟเดเตเดเต เดเตเดฏเตเดค เดฆเดพเดคเดพเดตเดฟเตฝ เดชเตเดธเตเดฑเตเดฑเตเดเตเดตเดฑเดฟเดเตพ เดเตเดฒเดพเดธเตเดธเดฟเดจเตเดชเตเดชเด EloquentPostQueries เดเตบเดเตเดฐเตเดณเดฑเดฟเดฒเตเดเตเดเต เด เดเตเดฒเดพเดธเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเด.
เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดณเดฐเต เดเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏเดคเดพเดฏเดฟ เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเตเด. เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดเดฏเดฟเดฐเดเตเดเดฃเดเตเดเดฟเดจเต เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพ เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดชเตเดฐเดธเดฟเดฆเตเดงเตเดเดฐเดฃเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดเต เดคเตเดฑเดเตเดเตเดจเตเดจเต. เดเดฑเตเดฑเดตเตเด เดเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดชเตเดฐเดธเดฟเดฆเตเดงเตเดเดฐเดฃเดเตเดเดณเตเด เดชเดฒเดชเตเดชเตเดดเตเด เดตเดพเดฏเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเดเตพ เด เดคเตเดคเดฐเด เดฒเตเดกเตเดเดณเต เดจเดจเตเดจเดพเดฏเดฟ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เด เดคเดฟเดจเดพเตฝ เด เดต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดชเดฐเดฟเดนเดพเดฐเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต - เดเดฐเต เดเดพเดทเต. เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดจเต เดชเตเดฑเดฎเต, เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดกเดพเดฑเตเดฑ เดธเตเดจเดพเดชเตเดชเตเดทเตเดเตเดเต เดเดฟเดฒ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเต เดเตเดฏเตเดค เดธเตเดฑเตเดฑเตเดฑเตเดเดฟเตฝ เดธเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต - memcached เด เดฅเดตเดพ เดเดตเดฐเตเดคเตเดคเดฟเดเตเดเตเด.
เดเดพเดทเดฟเดเดเต เดฒเตเดเดฟเดเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด เดคเตเดฐ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ EloquentPostQueries-เตฝ เดเดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เด เดคเตเดฐ เดถเดฐเดฟเดฏเดฒเตเดฒ (เดเดพเดฐเดฃเด เดฎเดพเดคเตเดฐเด เดเดฐเตเดฑเตเดฑ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด). เดเดฐเต เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดธเตเดตเดพเดญเดพเดตเดฟเดเดฎเดพเดฃเต เด เดฒเดเตเดเดพเดฐเดชเตเดชเดฃเดฟเดเตเดเดพเดฐเตป เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เด เดฒเดเตเดเดพเดฐเดฎเดพเดฏเดฟ เดเดพเดทเดฟเดเดเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด:
<?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();
});
}
// ะดััะณะธะต ะผะตัะพะดั ะฟัะฐะบัะธัะตัะบะธ ัะฐะบะธะต ะถะต
}
เดเดจเตเดฑเตผเดซเตเดธเต เด เดตเดเดฃเดฟเดเตเดเตเด เดธเดเดญเดฐเดฃเดฟเดฏเดพเดฃเต เดเตบเดธเตเดเตเดฐเดเตเดฑเตเดฑเดฑเดฟเตฝ. เด เดเตเดเดพเดคเดฎเดพเดฏ เดเดฟเดฒ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ, เดฒเดพเดฑเดตเตเดฒเดฟเตฝ เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดจเตเดฑเตผเดซเตเดธเดฟเดจเต เด เดฐเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเต เดจเตฝเดเดพเตป เด เดตเตผ เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต.
เดเตเดฒเดพเดธเต CachedPostQueries เดเดพเดทเดฟเดเดเต เดฎเดพเดคเตเดฐเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต. $this->cache->เดเตผเดเตเดเตเด เด เดเตปเดเตเดฐเดฟ เดเดพเดทเตเดฏเดฟเดฒเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดเดฏเตเด เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเตเตพเดฌเดพเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเดเดฏเตเด เดเดพเดทเตเดฏเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเดฟเดฏ เดฎเตเดฒเตเดฏเด เดเดดเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดเตเดฒเดพเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดจเตเดฑเตผเดซเตเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเดณเตเดณ เดเดฒเตเดฒเดพ เดเตเดฒเดพเดธเตเดเดณเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต เดชเตเดธเตเดฑเตเดฑเตเดเตเดตเดฑเดฟเดเตพ เดเตเดฒเดพเดธเตเดธเดฟเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดฒเดญเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟ 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) เดเดจเตเดฑเตผเดซเตเดธเต เดคเดฒเดคเตเดคเดฟเตฝ เดตเดพเดฏเดฟเดเตเดเดพเดจเตเด เดเดดเตเดคเดพเดจเตเดฎเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต. เด เดคเดฟเดฒเตเดเต เดเดพเตป เด เดตเดจเตเดฑเต เด เดเตเดคเตเดคเตเดคเตเดคเดฟ เดเดจเตเดฑเตผเดซเตเดธเต เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตฝ เดคเดคเตเดตเด, เดเดพเตป เดชเดพเดฑเตเดฑเตเดฃเตเดเดณเตเด เดคเดคเตเดตเดเตเดเดณเตเด เดธเดฎเตผเดคเตเดฅเดฎเดพเดฏเดฟ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเดจเตเด เดฎเดฑเตเดฑเตเดจเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดธเดฟเดฆเตเดงเดพเดจเตเดคเดฎเดพเดฏเดฟ เดเดฐเตเดคเตเดคเดฟเดฐเดฟเดฏเดพเดจเตเด เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต :) เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเด เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เดคเตเดคเดฐเดฎเตเดฐเต เด เดฎเตเตผเดคเตเดคเตเดเดฐเดฃเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดพเตป เดจเดฟเดเตเดเดณเตเดฎเดพเดฏเดฟ เดเตเดฐเดฟเดเตเดเต เดชเดเตเดเดฟเดเตเด. เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดชเตเดฐเดพเดฐเดเดญ เดเดเตเดเดคเตเดคเดฟเตฝ เดตเดฟเดเดธเดจเด, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตเดฒเดพเดธเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด เดชเตเดธเตเดฑเตเดฑเตเดเตเดตเดฑเดฟเดเตพ Eloquent เดตเดดเดฟ เดธเดพเดงเดพเดฐเดฃ เดจเดเดชเตเดชเดพเดเตเดเดฒเดฟเดจเตเดชเตเดชเด:
<?php
final class PostQueries
{
public function getById($id): Post
{
return Post::findOrFail($id);
}
// ะดััะณะธะต ะผะตัะพะดั
}
เดเดพเดทเต เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดเดตเดถเตเดฏเด เดตเดฐเตเดฎเตเดชเตเตพ, เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต เดจเตเดเตเดเดคเตเดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เด เดเตเดฒเดพเดธเดฟเดจเตเดฑเต เดธเตเดฅเดพเดจเดคเตเดคเต เดเดฐเต เดเดจเตเดฑเตผเดซเตเดธเต (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดฎเตเตผเดคเตเดค เดเตเดฒเดพเดธเต) เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เดชเตเดธเตเดฑเตเดฑเตเดเตเดตเดฑเดฟเดเตพ, เด เดคเดฟเดจเตเดฑเต เดจเดเดชเตเดชเดพเดเตเดเตฝ เดเตเดฒเดพเดธเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเด EloquentPostQueries เดเดพเตป เดจเตเดฐเดคเตเดคเต เดตเดฟเดตเดฐเดฟเดเตเด เดธเตเดเตเดฎเดฟเดฒเตเดเตเดเต เดชเตเดเตเด. เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดกเต เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเดฟเดฒเตเดฒ.
เดเตเดฒเดพเดธเตเดเตพ, เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดณเตเดณ เด เดคเดจเตเดคเตเดฐเดเตเดเดณเตเดฒเตเดฒเดพเด เดเดถเตเดฐเดฟเดคเดคเตเดต เดเตเดคเตเดคเดฟเดตเดฏเตเดชเตเดชเต ะธ CQRS เดเดจเตเดจเดคเดฟเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต
เด เดตเดฒเดเดฌเด: www.habr.com