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.