How dandoetech/resource-registry works
DanDoeTech Resource Registry is a framework-agnostic PHP library for defining API resource metadata for consumer packages. The main workflow is to define a Resource, have its builder create a ResourceDefinition, then retrieve definitions through Registry; ArrayRegistryDriver provides an alternative array-config source. The graph groups related contracts and value objects to keep this small runtime library focused. Some registry and hydration behavior is represented from the README and excerpts; unsampled implementation details are not inferred.
Main entry points: ResourceBuilder.php ResourceBuilder · ResourceDefinition.php Resource definition · FieldType.php Metadata types · Resource.php Resource base
Components 13
Resource authoring
- Resource base
src/Resource.php - ResourceBuilder
src/Builder/ResourceBuilder.php
Metadata model
- Definition contracts
src/Contracts/ResourceDefinitionInterface.php - Field metadata
src/Definition/FieldDefinition.php - Relation metadata
src/Definition/RelationDefinition.php - Computed metadata
src/Definition/ComputedFieldDefinition.php - Action metadata
src/Definition/ActionDefinition.php - Metadata types
src/Definition/FieldType.php - Query profiles
src/Definition/QueryProfile.php - Resource definition
src/Definition/ResourceDefinition.php
Registry access
- Registry
src/Registry/Registry.php - Array driver
src/Registry/ArrayRegistryDriver.php
Other components
- Package user
Connections 15
- Package user → Resource base: defines resources
README.md - Package user → Registry: retrieves definitions
README.md - Resource base → ResourceBuilder: builds with
src/Resource.php - ResourceBuilder → Resource definition: builds
src/Builder/ResourceBuilder.php - ResourceBuilder → Field metadata: creates fields
src/Builder/ResourceBuilder.php - ResourceBuilder → Relation metadata: creates relations
src/Builder/ResourceBuilder.php - ResourceBuilder → Computed metadata: creates computed fields
src/Builder/ResourceBuilder.php - ResourceBuilder → Action metadata: creates actions
src/Builder/ResourceBuilder.php - ResourceBuilder → Query profiles: creates profiles
src/Builder/ResourceBuilder.php - Array driver → Resource definition: hydrates
src/Registry/ArrayRegistryDriver.php - Registry → Array driver: uses driver
src/Registry/ArrayRegistryDriver.php - Resource definition → Definition contracts: implements
src/Definition/ResourceDefinition.php - Field metadata → Metadata types: uses field type
src/Definition/FieldDefinition.php - Relation metadata → Metadata types: uses relation type
src/Definition/RelationDefinition.php - Computed metadata → Metadata types: uses field type
src/Definition/ComputedFieldDefinition.php