FAPost reusable Eloquent primitives — traits, base model, and model concerns
v0.1.0 2026-08-03 16:53 UTC
This package is not auto-updated.
Last update: 2026-08-03 17:22:14 UTC
fapost/support holds reusable Eloquent primitives — a base model, opt-in model concerns and
the fluent config-schema builder. These are shared building blocks with no Core coupling, usable
by Core and by external Solutions/Plugins alike.
use App\... is forbidden here. Support may depend on
fapost/foundation contracts, but never on concrete Core domain classes.^8.4illuminate/database / illuminate/support ^11 || ^12fapost/foundationFAPost\Support\ → src/
What's insideModels\BaseModelAn abstract Eloquent model wiring three opt-in extension points. All are inert unless the model declares the corresponding property:
| Concern | Opt-in property | Effect |
|---|---|---|
HasComputedAttributes |
— (resolver-backed) | Computed/virtual attributes via ModelAttributeResolverInterface, falling back to Eloquent |
InteractWithUtilities |
$utilitiesClass |
Delegates unknown method calls to a ModelUtilityInterface class |
InteractWithBuilder |
$customBuilder |
Swaps in a custom Eloquent query builder |
HasComputedAttributesandInteractWithUtilitiesresolve their collaborators viaapp()— an accepted infrastructure exception, since Eloquent instantiates models directly and bypasses constructor DI.
Concerns\HasUlidPrimaryKeyULID primary keys stored as PostgreSQL uuid (RFC-4122, lowercased), per the platform ID strategy.
Use it on any tenant-schema model that follows this convention.
final class Contact extends BaseModel { use HasUlidPrimaryKey; }
Builder\SchemaA fluent builder for the array shape returned by NodeHandlerInterface::configSchema(). Schema,
Section and the Fields\* classes produce exactly the wire format the Vue flow builder consumes,
so handlers can mix fluent and raw arrays during migration. Each field's type() maps 1:1 to the
renderer's FIELD_COMPONENTS table.
Available field types: Text, Textarea, Number, Toggle, Select, EnumCards, Array,
Object, ObjectArray, KeyValue, Json, Duration, FlowPicker, StatePicker.
Schema::make() ->section( Section::make('General')->fields( TextField::make('label')->label('Label')->required(), ToggleField::make('enabled')->default(true), ), );TestingLicense
Licensed under the Apache License 2.0.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | fapost/foundation | 0 | 10 | 03-08-2026 |
| 2 | ratts/rih | 0 | 10 | 03-08-2026 |
| 3 | apavliukov/laravel-devtools | 0 | 23.93 | 03-08-2026 |
| 4 | A practical guide to React error monitoring | 0 | 7.06 | 29-07-2026 |
| 5 | karelwintersky/arris.config | 0 | 10 | 03-08-2026 |
| 6 | 0 | 5 | 25-05-2026 | |
| 7 | 0 | 0 | 05-05-2026 | |
| 8 | 0 | 0 | 29-04-2026 | |
| 9 | loioes — | 0 | 0 | 08-07-2026 |
| 10 | Rebuilding the CircleCI CLI from scratch | 0 | 5 | 07-07-2026 |