CrudResourceMetadata - viames/pair GitHub Wiki
Pair framework: CrudResourceMetadata
Pair\Api\CrudResourceMetadata caches normalized CRUD metadata for model classes that expose apiConfig().
It is a small process-local cache used by ApiExposable so repeated calls to getCrudResourceConfig(), getApiConfig(), and helper predicates do not rebuild the same CrudResourceConfig object repeatedly.
Main methods
CrudResourceMetadata::configFor(string $modelClass): CrudResourceConfig
Returns the normalized CRUD resource config for a model class.
use Pair\Api\CrudResourceMetadata;
$config = CrudResourceMetadata::configFor(\App\Models\Faq::class);
If the class defines apiConfig(), the returned object is built from that config. Otherwise Pair returns conservative CRUD defaults.
CrudResourceMetadata::clear(?string $modelClass = null): void
Clears cached CRUD metadata.
Invalidate one model class:
CrudResourceMetadata::clear(\App\Models\Faq::class);
Invalidate every cached model config:
CrudResourceMetadata::clear();
Use explicit invalidation in tests, module generators, or long-running commands that modify model API metadata and keep running in the same PHP process.
Notes
- This cache is process-local and starts empty in a fresh PHP process.
- It stores normalized framework metadata, not application data.
- Runtime behavior is defined by PHP code and config arrays, not by comments or docblocks.
See also: ApiExposable, CrudResourceConfig, CrudController.