---
# System prepended metadata

title: "Coding Guide \U0001F485"

---

# Coding Guide 💅

## Using Cache

### Database Model Cache
日常的に変化しないアプリケーション共通のデータを毎回データベースから呼び出すことはスマートではありません。そこで、キャッシュを作成し発行されるクエリ数を減らします。

#### Read cache data

アプリケーションでは、モデルの特定のカラムをキャッシュさせるtraitを用意してあります。これは、キャッシュのキーの命名規則を担保するためのものであり、キャッシュさせる場合は必ず利用してください。

使用方法: Modelクラス内でtraitを呼び出し、引数としてカラム名を渡します。

```php
# in the Model Class 
use App\Traits\HasModelCache;

$this->modelCache('category');
```


> 🚨 **引数はカラム名であり、単数系でなければなりません**

#### Create/Update cache data
キャッシュさせる場合は、必ず `Observer` を利用してください。これは、モデルの状態を常に監視し、キャッシュするべきタイミングをシステムで監視できるからです。また、コードの可読性を担保するために、キャッシュを行うロジックは集約するべきだからです。