dilneiss / back-tools
dilneiss/back-tools
Requires
- ext-pdo_sqlite: *
- backpack/crud: ^6.7.1
- backpack/generators: ^4.0
- calebporzio/sushi: ^2.3
- laravel-shift/blueprint: ^2.7
- livewire/livewire: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.1
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-10-30 13:46:33 UTC
README
A web interface to generate migrations, models and CRUDs. Forget about the command line. Forget about migration types. Go from idea to full CRUD in seconds.
Why?
What's your current process, when creating an entity in your project? We bet you need:
- a
migration
; - a
model
; - maybe a
factory
and aseeder
; - then you need an admin panel for it, so you create a
CrudController
,CrudRequest
,route
andsidebar item
;
Haven't you gotten tired of doing that, for each new entity? We have. Not only is it boring and repetitive... it takes quite a bit of time to get just right. We've all tried to speed this up using existing tools. Hell, we've even contributed or taken over their maintenance:
- we've used
laracasts/generators
formigrations
andmodels
, but it's difficult to generate a final migration in one command line; we always forget stuff... and it doesn't generate relationships; - we've used
laravel-shift/blueprint
formigrations
andmodels
with relationships, but then you have to learn&remember the Blueprint YAML syntax; we forget it, so we get into a back-and-forth between the Blueprint docs, the Laravel migration docs, the YAML file and the generated files; - then for CRUDs, we always use
backpack/generators
, but... it doesn't fill in theCrudRequest
or thefields
&columns
... it's a technical limitation... so we have to punch in every column/field we want afterwards;
We're super-grateful to the creators of those tools. We've been using them for years and contributed to their projects as much as possible. But... we've always felt we can do better. So we did.
We're web developers, so we've created a web interface (😱 ), which uses those exact tools behind the scenes, connects them and polishes the generated files, automatically. We thought it would take us a few days, maybe weeks, but after quite a few months of working at this, we can finally say we've got something better. Something much much better.
Thanks to this package, creating new entities is no longer boring, or tedious. It's actually... fun 😀 We think you'll absolutely love this new way of starting your Laravel projects... In fact, we think you won't be able to go back to writing them by hand. We know we can't 😀
Features
Generate full entities in seconds
Thanks to Backpack\Devtools, you can just fill in one form:
And you can get:
- a complete
migration
; - a
model
withfillable
and relationships already written; - a
seeder
andfactory
with the columns defined; - a
CrudController
with the fields & columns already defined; - a
CrudRequest
with the validation rules already inferred from the database restrictions; - a
route
andsidebar item
for the admin panel;
That's a full working CRUD, you can go ahead and add items from the admin interface.
No, really. Here's what the form above generated:
Manage your database migrations in a web interface
No more dumpster-diving into the database/migrations
directory. Easily see your migrations, which ones are run, run them, roll them back and even open them in your editor to slighly polish them.
Manage your models in a web interface
See the state of your Models, which ones have CRUDs, which ones have factories and seeders and insert dummy data right then&there.
Generate custom admin panel components
[UNDER DEVELOPMENT] Soon enough, this package will also help you:
- use templates to create a custom Backpack blade files -
columns
,fields
,filters
,buttons
,widgets
; - use templates to create custom Backpack
Operations
; - create completely custom Backpack pages (like dashboards);
You can forget about using the command line for those things. You can forget about looking inside the vendor/backpack/crud
folder to see what you want to overwrite or get inspiration from. You think it, you click it, you have it.
Requirements
Backpack DevTools assumes that you already have:
- Laravel 8+
- PHP 7.3+
- MySQL 5.7.x / 8.x
- SQLite 3.36+ (eg.
pdo_sqlite
extension enabled) backpack/crud
v4.1+ properly installed
Installation
Quick Installation
In your Laravel + Backpack project, run:
php artisan backpack:require:devtools
It will ask you for your token & password - which you get after you purchase this package. If you've purchased previously, you can see your token and password in your Backpack account.
Manual Installation
Alternatively, if the quick installation above doesn't work, here are the steps you can take:
Step 1. Buy access to this package and you'll get an access token. With that token in hand, you should instruct your project to pull in DevTools from our private repository, instead of Packagist:
- add your token to your project's
auth.json
file by runningcomposer config http-basic.backpackforlaravel.com [your-token-username] [your-token-password]
- add the Backpack private repo to your
composer.json
:
"repositories": [ { "type": "composer", "url": "https://repo.backpackforlaravel.com/" } ],
Step 2. Install the package using Composer:
# Recommended - get latest DevTools version and update dependencies (backpack, livewire, sushi, blueprint) composer require --dev --with-all-dependencies backpack/devtools # Alternatively - get the version of DevTools you can install without updating anything composer require --dev backpack/devtools
Common errors:
- composer require conflict - run the recommended method above or
composer update
, to get the latest version; Error 500 Class X does not seem to be auto-loaded
- run the recommended method above orcomposer update
, to get the latest version;
Step 3. Run the installation command and follow the instructions:
php artisan backpack:devtools:install
That's it. You can now visit your-app-name/admin/devtools
to use DevTools. The rest is point&click.
SUPER-IMPORTANT!!! You must make sure your
staging
andproduction
environments DO NOT include the DevTools interface and functionality:
- if you auto-deploy your project using
composer
&git
(using Laravel Forge, Envoyer or anything else), make sure that you're runningcomposer install --no-dev
;- if you deploy your project by uploading a ZIP file or FTP the files, make sure you upload builds after you've run
composer install --no-dev
;- alternatively, after you're done generating stuff using DevTools, just do
composer remove --dev backpack/devtools
, that'll get rid of it; or include that command in your build pipeline;
Support
To submit issues, bugs and feature requests, please see our laravel-backpack/devtools-issues repo on Github.
Security
If you discover any security related issues, please email cristian.tabacitu@backpackforlaravel.com instead of using the issue tracker.
License
This software is proprietary & closed-source, released under the End-User License Agreement (EULA) for Private Backpack Addons. A copy of that license is also provided inside the source code - you can read that file by using the tabs at the beginning of this page.