facedigital/crudify

Perfect assistant to speed up project development with Laravel

1.0.3 2024-09-13 20:00 UTC

This package is not auto-updated.

Last update: 2025-04-25 03:40:22 UTC


README

Run Tests

Cudify Logo

FACE Digital - Crudify

Package implements a CRUD generator based on schema or table existing in the database. Ideal for laravel projects with legacy database.
Explore the docs »
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About The Project

This Package is developed by FACE Digital and implements a CRUD generator for Laravel Framework designed to simplify CRUD operations by automatically generating code based on existing schemas or tables in a database. It is particularly well-suited for Laravel projects that rely on legacy databases. With this package, developers can quickly create, read, update, and delete data without the need for manual coding.

Note: As an early version this tool still has a lot of limitations but it can be improved with community contributions.

Installation

Installing from composer. (More Easy)

composer require facedigital/crudify

Installing from Git repository

Add these lines to the project's composer.json.

"require": {
    "facedigital/crudify": "*"
}

Add this from repositories section.

"repositories": [
    {
        "type": "vcs",
        "url": "git@github.com:facedigital/crudify.git"
    }
]

If the version is not informed, the master branch will be installed.

Run composer install or composer update command.

After installation run the command:

php artisan vendor:publish --tag=crudify

Usage

Crudify All Command

Creates all files based on the name and --schema that are passed as a parameter.

php artisan crudify:all post --schema "title:string, subtitle:string:nullable, content:text"

Creates all files based on an existing table in the database.

php artisan crudify:all post

Created Files:

  • Model
  • Controller
  • StoreRequest
  • UpdateRequest
  • Factory
  • View Index
  • View Show
  • View Create
  • View Edit

Crudify Migration Command

Creates a migration based on the name and --schema that are passed as a parameter.

php artisan crudify:migration post --schema "title:string, subtitle:string:nullable, content:text"

Creates a migration based on an existing table in the database.

php artisan crudify:migration post

Created Files:

  • Migration

Crudify Factory Command

Creates a factory based on the name and --schema that are passed as a parameter.

php artisan crudify:factory post --schema 'title:string, subtitle:string:nullable, content:text'

Creates a factory based on an existing table in the database.

php artisan crudify:factory post

Created Files:

  • factory

Crudify Model Commnad

Creates a model based on the name and --schema that are passed as a parameter.

php artisan crudify:model post --schema 'title:string, subtitle:string:nullable, content:text'

Creates a model based on an existing table in the database.

php artisan crudify:model post

Created Files:

  • Model

Crudify Controller Command

Creates a controller based on the name and --schema that are passed as a parameter.

php artisan crudify:controller post --schema 'title:string, subtitle:string:nullable, content:text'

Creates a controller based on an existing table in the database.

php artisan crudify:controller post

Created Files:

  • Controller

Crudify Views Command [index|show|create|edit]

Creates a view based on the name and --schema that are passed as a parameter.

php artisan crudify:index post --schema 'title:string, subtitle:string:nullable, content:text'

Creates a view based on an existing table in the database.

php artisan crudify:index post

Created Files:

  • View Index
  • View Show
  • View Create
  • View Edit

Change Theme

In the config file located at config/crudify.php has the theme definition.

'theme' => 'bootstrap' // [bootstrap|tailwind]

Customize Stubs

'stubs' => [
    'views' => [
        'index' => null, // [null = default|project]
        'create' => 'stubs/crudify/views/create.blade.php.stub',
        'edit' => null,
        'show' => null,
    ]
],

Roadmap

  • Add Changelog
  • Add README and basic documentation
  • Add MIT License
  • Add Theme definition in config
  • Add Basic Class Components
  • CLI Commands
    • Generate All Command
    • Generate Migration Command
    • Generate Model Command
    • Generate Controller Command
    • Generate StoreRequest Command
    • Generate UpdateRequest Command
    • Generate View Index Command
    • Generate View Edit Command
    • Generate View Show Command

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

FACE Digital - facedigital.com.br - dev@facedigital.com.br

Project Link: https://github.com/facedigital/crudify