xmarkclx / laravel-autodb
Automatically creates database for Laravel based on a few PHP documentation comments.
Installs: 14
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/xmarkclx/laravel-autodb
Requires
- php: >=5.5.9
 - doctrine/dbal: ~2.4
 
Requires (Dev)
- phpunit/phpunit: ^4.8|^5.0
 
This package is not auto-updated.
Last update: 2025-10-23 05:29:37 UTC
README
Automatically creates database based on few PHP documentation comments.
- Easy to use
 - Stable
 - Fully Tested: Major Features are tested for stability
 - Framework agnostic
 - Pleasurable to work with
 - Supports Laravel / Eloquent
 
Usage
Install via composer
composer require xmarkclx/laravel-autodb
Create Database Comments
Given we have a comment on a class like so:
/** * Class Example * * @db=== * @property string $avatar_url * @property int $id #increments * @db=== ** * @package App */ class Example implements AutogeneratedDBFields {
We run:
    php artisan autodb
What happens:
- Will create table example if not yet created.
 - In that table:
- Creates string called avatar_url.
 - Creates integer called id that is a primary key and auto-increments.
 
 
FAQs
Why?
- Creating database migrations and changing them is time consuming. This will make it faster.
 - Also, this would avoid migration conflicts that happens when multiple migrations, try to modify the same database fields.
 - Furthermore, with this method, you can automatically get autocomplete suggestions on your IDE for the database fields due to it being related to phpdoc tags.
 - No more need to open database viewer to know what fields the model has, just look at the model file.
 - Agile Friendly: Make database improvements fast.
 
Why not just make this tool create migrations?
Well, we can, and it's not hard, but I don't have time for that yet.
If you want to help, you just need to make an assembler for that, just see how src/LaravelModelAssembler.php works and you can make a LaravelMigrationAssembler.php or something that assembles migrations instead of the database.
Example
- I create migration where name is now an integer based on a test.
 - Production server gets my migration and migrated it.
 - Production server names are now integers.
 - So that's why it was decided to auto migrate data instead of creating migration files.
 
I want to help make this project better.
See docs/Architecture.md for how it is architected.