Cray For Laravel
What is Cray?
Cray is a disposable
Laravel package to help you generate nearly complete CRUD pages like crazy. Literally. It's also a bit opinionated.
If you build straight-forward CRUD pages more often manually writing all the same logic becomes a chore. Cray will not only save you a save but also give you a better way to organize your code.
So what do you mean by disposable?
You use Cray and forget about it. It isn't coupled with your installation of Laravel and it is preferred to be installed as a dev
dependency. Cray generates the files and it forgets about them and they are all yours to modify do whatever you want.
What does it actually do?
Suppose you are building a blog, and you want to create a Post model then you have to do a ton of other tedious and to be honest, boring things like creating migrations, model factories, the controller, form validation and adding all the logic and what not.
So what Cray does is when you tell it the model name, it will do all those boring things I listed earlier. When it's done you have the following:
Post.php
PostController.php
with all the necessary logic to list, edit, create and delete posts.PostStoreRequest.php
andPostUpdateRequest.php
- Timestamped
create_posts_table.php
migration file PostFactory.php
posts
views directory withindex.blade.php
,create.blade.php
,edit.blade.php
,show.blade.php
,modals/delete.blade.php
as well as a blank_form.blade.php
for you to add the fields.
Then all you have to do is:
- Add the columns to the migration file
- Add the necessary fields (as defined in the last step) to the
_form.blade.php
- Add validation rules for the fields you added to the form.
Installation
composer require jq/cray --dev
Or specify specific version, for example to try a beta
composer require "jq/cray:3.2.0-beta3" --dev
Then publish the stubs
php artisan vendor:publish --tag=cray
It will generate stubs
to resources/vendor/cray/stubs
directory.
Usage
php artisan cray Post
Once done, it will show you the details of the files generated.
Factory created successfully in /database/factories/PostFactory.php
Created Migration: 2020_03_14_151409_create_posts_table
Model created successfully in /app/Post.php
Controller created successfully in /app/Http/Controllers/PostController.php
View created successfully in /resources/views/posts/index.blade.php
View created successfully in /resources/views/posts/create.blade.php
View created successfully in /resources/views/posts/_form.blade.php
View created successfully in /resources/views/posts/edit.blade.php
View created successfully in /resources/views/posts/show.blade.php
View created successfully in /resources/views/posts/modals/delete.blade.php
Request created successfully in /app/Http/Requests/PostStoreRequest.php
Request created successfully in /app/Http/Requests/PostUpdateRequest.php
Now add the necessary fields and run
php artisan migrate
And that saved you an hour worth of repetitive and boring work which you can spend on more important development challenges.
Optional Packages
Documentation
You can read the documentation here.
Changelog
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Laravel Package Boilerplate
This package was generated using the Laravel Package Boilerplate.