Download the PHP package splitstack/aristotle without Composer
On this page you can find all versions of the php package splitstack/aristotle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download splitstack/aristotle
More information about splitstack/aristotle
Files in splitstack/aristotle
Package aristotle
Short Description DDD entity scaffolding and base classes for Laravel Splitstack applications
License MIT
Informations about the package aristotle
Aristotle
DDD entity scaffolding and base classes for Laravel applications.
Aristotle generates typed, immutable entity classes from your Eloquent models by reading the database schema and respecting your model's $casts. Entities implement Arrayable, ArrayAccess, and IteratorAggregate out of the box.
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
Installation
The service provider is auto-discovered. Optionally publish the config and/or stub:
Generating an entity
The command will prompt you to choose a model and a domain. You can also pass everything as options:
Options
| Option | Description |
|---|---|
--model= |
Eloquent model to scaffold from |
--domain= |
Bounded context / domain folder |
--namespace= |
Override the full namespace (skips the domain prompt) |
--database= |
Database to connect to (useful in multi-tenant setups) |
--force |
Overwrite the entity if it already exists |
The command reads the model's table columns and $casts, then writes a typed entity class. For example, given a users table with id, name, email, and email_verified_at columns, the output is:
Using an entity
Entities are immutable — attempting to set or unset a property via array access throws a BadMethodCallException.
Configuration
Type resolution
Column types and Eloquent casts are mapped to PHP types automatically:
| Cast / column type | PHP type |
|---|---|
int, integer |
int |
bool, boolean |
bool |
float, double, real, decimal |
float / string |
string, encrypted, hashed |
string |
date, datetime, immutable_date/datetime |
CarbonInterface |
array, json, encrypted:array |
array |
collection, encrypted:collection |
Collection |
object, encrypted:object |
object |
timestamp |
int |
AsStringable |
Stringable |
AsUri |
Uri |
AsFluent |
Fluent |
| Enum cast | enum type |
Custom CastsAttributes |
resolved from @implements docblock |
Nullable columns and auto-increment columns are generated as nullable (?Type = null).
Extending the stub
After publishing the stub (vendor:publish --tag=aristotle-stubs), edit stubs/entity.stub. The available placeholders are {{ namespace }}, {{ imports }}, {{ class }}, and {{ properties }}.
License
MIT
All versions of aristotle with dependencies
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/filesystem Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0