corollarium / modelarium
Generates scaffolding for frontend and backend from schemas
v0.5.2
2021-09-29 18:07 UTC
Requires
- php: >=7.3.0
- composer/composer: ^1.10
- corollarium/formularium: ^0.10.2
- doctrine/inflector: ^2.0
- haydenpierce/class-finder: ^0.4.2
- illuminate/console: ^8.0
- illuminate/support: ^8.0
- nette/php-generator: ^3.4
- nuwave/lighthouse: ^5.23
- thecodingmachine/safe: ^1.1
- webonyx/graphql-php: ^14.5
- zordius/lightncandy: ^1.2
Requires (Dev)
Suggests
- corollarium/formularium: Generate frontend, your own datatypes and validators easily
This package is auto-updated.
Last update: 2024-11-29 06:10:13 UTC
README
Modelarium generates scaffolding for your project based on a GraphQL description of your API. It can create the entire backend and frontend files, leaving only the logic and design for you.
- generates backend scaffolding for you: model, database migration, seed, factory, events, policies. Everything from your graphql descriptions. No more tedious creation of files and repeated code.
- datatypes: your data is more than strings. You have models for your structures, so have datatypes for your fields. Create the correct database fields without thinking about it. Uses Formularium for datatypes.
- validation: transparent data validation made automatically based on your datatypes. Your data is always safely validated.
- no performance penalty: other than data validation all data is generate at development time. It's just automatic scaffolding, everything is just as fast as before.
- no new standards: code is generated following existing standards for existing tools. Generate code and use it freely. Nothing is tied down.
- frontend generation: get HTML forms, cards, lists and views generated for you automatically with your favorite CSS framework: Bootstrap, Bulma, Materialize, Buefy with simple declarations and a standard description. You can tweak details afterwards -- it's just code.
- reactive frameworks: Get Vue and React components like cards, forms, lists and tables, ready to use with their Graphql calls.
- integration with Laravel and Lighthouse. Get GraphQL endpoints automatically.
What it doesn't do:
- magic. you still have to write your code logic to process requests in the backend, like in mutations or special conditions in your models. You also get only a basic design, so pretty CSS is up to you.
- REST endpoints generation. At this point only GraphQL is supported through Laravel and Lighthouse. REST endpoints might come later.
- other backend frameworks. Currently only Laravel is supported.
Documentation
See the full documentation for Modelarium.
See a sample project.
Sponsors
Quick overview
This a Graphql file that reproduces Laravel's default User
model. Notice the Email
datatype, as well as the @migration
directives for the database creation.
type User @migrationRememberToken @migrationSoftDeletes @migrationTimestamps @modelExtends(class: "Illuminate\\Foundation\\Auth\\User") @modelNotifiable { id: ID! name: String! @modelFillable @renderable(label: "Name", comment: "Please fill with your fullname") password: String! @modelHidden @modelFillable email_verified_at: Timestamp @casts(type: "datetime") email: Email! @migrationUniqueIndex @modelFillable }
Here's a sample Post
Model, with custom data types for validation and data generation:
type Post @migrationTimestamps { id: ID! title: Title! description: Text! user: User! @belongsTo @foreign(onDelete: "cascade", onUpdate: "cascade") }
Contributing
Any contributions are welcome. Please send a PR.