Rapidly speed up your Laravel workflow with generators

Overview

Fast Workflow in Laravel With Custom Generators

Build Status

This Laravel package provides a variety of generators to speed up your development process. These generators include:

  • generate:model
  • generate:view
  • generate:controller
  • generate:seed
  • generate:migration
  • generate:pivot
  • generate:resource
  • generate:scaffold

Installation

Want a 5-minute video overview?

Laravel 5

If you're using Laravel 5, then use this package instead.

Laravel 4.2 and Below

Begin by installing this package through Composer. Edit your project's composer.json file to require way/generators.

"require-dev": {
	"way/generators": "~2.0"
}

Next, update Composer from the Terminal:

composer update --dev

Once this operation completes, the final step is to add the service provider. Open config/app.php, and add a new item to the providers array.

'Way\Generators\GeneratorsServiceProvider'

That's it! You're all set to go. Run the artisan command from the Terminal to see the new generate commands.

php artisan

Usage

Think of generators as an easy way to speed up your workflow. Rather than opening the models directory, creating a new file, saving it, and adding the class, you can simply run a single generate command.

Migrations

Laravel offers a migration generator, but it stops just short of creating the schema (or the fields for the table). Let's review a couple examples, using generate:migration.

php artisan generate:migration create_posts_table

If we don't specify the fields option, the following file will be created within app/database/migrations.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreatePostsTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::create('posts', function(Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
	}

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	    Schema::drop('posts');
	}

}

Notice that the generator is smart enough to detect that you're trying to create a table. When naming your migrations, make them as descriptive as possible. The migration generator will detect the first word in your migration name and do its best to determine how to proceed. As such, for create_posts_table, the keyword is "create," which means that we should prepare the necessary schema to create a table.

If you instead use a migration name along the lines of add_user_id_to_posts_table, in that case, the keyword is "add," signaling that we intend to add rows to an existing table. Let's see what that generates.

php artisan generate:migration add_user_id_to_posts_table

This will prepare the following boilerplate:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class AddUserIdToPostsTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::table('posts', function(Blueprint $table) {

        });
	}


	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	    Schema::table('posts', function(Blueprint $table) {

        });
	}

}

Notice how, this time, we're not doing Schema::create.

Keywords

When writing migration names, use the following keywords to provide hints for the generator.

  • create or make (create_users_table)
  • add or insert (add_user_id_to_posts_table)
  • remove (remove_user_id_from_posts_table)
  • delete or drop (delete_users_table)

Generating Schema

This is pretty nice, but let's take things a step further and also generate the schema, using the fields option.

php artisan generate:migration create_posts_table --fields="title:string, body:text"

Before we decipher this new option, let's see the output:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreatePostsTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::create('posts', function(Blueprint $table) {
            $table->increments('id');
            $table->string('title');
			$table->text('body');
			$table->timestamps();
        });
	}

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	    Schema::drop('posts');
	}

}

Nice! A few things to notice here:

  • The generator will automatically set the id as the primary key.
  • It parsed the fields options, and added those fields.
  • The drop method is smart enough to realize that, in reverse, the table should be dropped entirely.

To declare fields, use a comma+space-separated list of key:value:option sets, where key is the name of the field, value is the column type, and option is a way to specify indexes and such, like unique or nullable. Here are some examples:

  • --fields="first:string, last:string"
  • --fields="age:integer, yob:date"
  • --fields="username:string:unique, age:integer:nullable"
  • --fields="name:string:default('John Doe'), bio:text:nullable"
  • --fields="username:string(30):unique, age:integer:nullable:default(18)"

Please make note of the last example, where we specify a character limit: string(30). This will produce $table->string('username', 30)->unique();

It is possible to destroy the table by issuing:

php artisan generate:migration delete_posts_table

As a final demonstration, let's run a migration to remove the completed field from a tasks table.

php artisan generate:migration remove_completed_from_tasks_table --fields="completed:boolean"

This time, as we're using the "remove" keyword, the generator understands that it should drop a column, and add it back in the down() method.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class RemoveCompletedFromTasksTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::table('tasks', function(Blueprint $table) {
            $table->dropColumn('completed');
        });
	}


	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	    Schema::table('tasks', function(Blueprint $table) {
            $table->boolean('completed');
        });
	}

}

Models

php artisan generate:model Post

This will create the file, app/models/Post.php and insert the following boilerplate:

<?php

class Post extends \Eloquent {

}

Views

The view generator is fairly simple.

php artisan generate:view admin.reports.index

This command will create an empty view, /app/views/admin/reports/index.blade.php. If the provided directory tree does not exist, it will be created for you.

Seeds

Laravel provides us with a flexible way to seed new tables.

php artisan generate:seed users

Set the argument to the name of the table that you'd like a seed file for. This will generate app/database/seeds/UsersTableSeeder.php and populate it with:

<?php

// Composer: "fzaninotto/faker": "v1.3.0"
use Faker\Factory as Faker;

class UsersTableSeeder extends Seeder {

    public function run()
    {
        $faker = Faker::create();

        foreach(range(1, 10) as $index)
        {
            User::create([

            ]);
        }
    }

}

This will give you a basic bit of boilerplate, using the popular Faker library. This is a nice way to seed your DB tables. Don't forget to pull in Faker through Composer!

Pivot

When you require a new pivot table, the generate:pivot table expedites the process of creating the appropriate migration.

Simply pass the name of the two tables that require a joining pivot table. For orders and users, you might do:

php artisan generate:pivot orders users

This will create the following migration:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateOrderUserTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
        Schema::create('order_user', function(Blueprint $table) {
            $table->increments('id');
			$table->integer('order_id')->unsigned()->index();
			$table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade');
			$table->integer('user_id')->unsigned()->index();
			$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
			$table->timestamps();
        });
	}


	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
	    Schema::drop('order_user');
	}

}

Notice that it correctly sets the table name according to your two provided tables, in alphabetical order. Now, run php artisan migrate to create your pivot table!

Resources

The generate:resource command will do a number of things for you:

  • Generate a model
  • Generate index, show, create, and edit views
  • Generate a controller
  • Generate a migration with schema
  • Generate a table seeder
  • Migrate the database

When triggering this command, you'll be asked to confirm each of these actions. That way, you can tailor the generation to what you specifically require.

Example

Imagine that you need to build a way to display posts. While you could manually create a controller, create a model, create a migration and populate it with the schema, and then create a table seeder...why not let the generator do that?

php artisan generate:resource post --fields="title:string, body:text"

If you say yes to each confirmation, this single command will give you boilerplate for:

  • app/models/Post.php
  • app/controllers/PostsController.php
  • app/database/migrations/timestamp-create_posts_table.php (including the schema)
  • app/database/seeds/PostsTableSeeder.php

Scaffolding

The scaffolding generator is similar to generate:resource, except it will add some beginning boilerplate to these files, as a convenience.

For instance, when running generate:scaffold post, your controller boilerplate will be:

<?php

class PostsController extends \BaseController {

	/**
	 * Display a listing of posts
	 *
	 * @return Response
	 */
	public function index()
	{
	    $posts = Post::all();

	    return View::make('posts.index', compact('posts'));
	}

	/**
	 * Show the form for creating a new post
	 *
	 * @return Response
	 */
	public function create()
	{
        return View::make('posts.create');
	}

	/**
	 * Store a newly created post in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
	    $validator = Validator::make($data = Input::all(), Post::$rules);

	    if ($validator->fails())
	    {
	        return Redirect::back()->withErrors($validator)->withInput();
	    }

	    Post::create($data);

	    return Redirect::route('posts.index');
	}

	/**
	 * Display the specified post.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
	    $post = Post::findOrFail($id);

	    return View::make('posts.show', compact('post'));
	}

	/**
	 * Show the form for editing the specified post.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		$post = Post::find($id);

		return View::make('posts.edit', compact('post'));
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		$post = Post::findOrFail($id);

		$validator = Validator::make($data = Input::all(), Post::$rules);

        if ($validator->fails())
        {
            return Redirect::back()->withErrors($validator)->withInput();
        }

		$post->update($data);

		return Redirect::route('posts.index');
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		Post::destroy($id);

		return Redirect::route('posts.index');
	}

}

Please note that you're encouraged to modify this generated controller. It simply provides a starting point.

Configuration

You may want to modify your templates - how the generated files are formatted. To allow for this, you need to publish the templates that, behind the scenes, the generators will reference.

php artisan generate:publish-templates

This will copy all templates to your app/templates directory. You can modify these however you wish to fit your desired formatting. If you'd prefer a different directory:

php artisan generate:publish-templates --path=app/foo/bar/templates

When you run the generate:publish-templates command, it will also publish the configuration to app/config/packages/way/generators/config/config.php. This file will look somewhat like:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Where the templates for the generators are stored...
    |--------------------------------------------------------------------------
    |
    */
    'model_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/model.txt',

    'scaffold_model_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/scaffolding/model.txt',

    'controller_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/controller.txt',

    'scaffold_controller_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/scaffolding/controller.txt',

    'migration_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/migration.txt',

    'seed_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/seed.txt',

    'view_template_path' => '/Users/jeffreyway/Desktop/generators-testing/app/templates/view.txt',


    /*
    |--------------------------------------------------------------------------
    | Where the generated files will be saved...
    |--------------------------------------------------------------------------
    |
    */
    'model_target_path'   => app_path('models'),

    'controller_target_path'   => app_path('controllers'),

    'migration_target_path'   => app_path('database/migrations'),

    'seed_target_path'   => app_path('database/seeds'),

    'view_target_path'   => app_path('views')

];

Also, while you're in this file, note that you can also update the default target directory for each generator.

Shortcuts

Because you'll likely type these commands over and over, it makes sense to create aliases.

# Generator Stuff
alias g:m="php artisan generate:model"
alias g:c="php artisan generate:controller"
alias g:v="php artisan generate:view"
alias g:s="php artisan generate:seed"
alias g:mig="php artisan generate:migration"
alias g:r="php artisan generate:resource"

These can be stored in, for example, your ~/.bash_profile or ~/.bashrc files.

Comments
  • Str is not defined

    Str is not defined

    PHP Fatal error:  Class 'Str' not found in /Users/USERNAME/project/vendor/way/generators/src/commands/GenerateMigrationCommand.php on line 118
    

    I get this error when I try to generate a migration.

    opened by sethaldridge 33
  • View templates are not scaffolding now?

    View templates are not scaffolding now?

    Just now made a fresh install of Laravel and Generators Scaffolded users:

    vagrant@dev:/vagrant$ php artisan generate:scaffold user --fields="..."
    Do you want me to create a User model? [yes|no]yes
    The file, /vagrant/app/models/User.php, already exists! I don't want to overwrite it.
    Do you want me to create views for this User resource? [yes|no]yes
    Created: /vagrant/app/views/users/index.blade.php
    Created: /vagrant/app/views/users/show.blade.php
    Created: /vagrant/app/views/users/create.blade.php
    Created: /vagrant/app/views/users/edit.blade.php
    Do you want me to create a UsersController controller? [yes|no]yes
    Created: /vagrant/app/controllers/UsersController.php
    Do you want me to create a 'create_users_table' migration and schema for this resource? [yes|no]yes
    Created: /vagrant/app/database/migrations/2014_04_14_125858_create_users_table.php
    Generating optimized class loader
    Would you like a 'Users' table seeder? [yes|no]no
    Do you want to go ahead and migrate the database? [yes|no]no
    All done! Don't forget to add 'Route::resource('users', 'UsersController');` to app/routes.php."
    

    And contents of view are: /vagrant/app/views/users/index.blade.php in views/users/index.blade.php /vagrant/app/views/users/show.blade.php in views/users/show.blade.php etc

    In other words View contains only string with it's path.

    UPD

    Took a look at shipped view template. It really contains only $PATH$ variable. Why? Earlier it was generating a nice bootstrap, very handful.

    opened by terion-name 27
  • Resources/scaffolds generated with underscore in name should be capitalized

    Resources/scaffolds generated with underscore in name should be capitalized

    Currently, when a resource or scaffold is generated with generate:resource/scaffold some_thing the result is Some_thingsController, with filename Some_thingsController.php, and the same thing for the models, etc.

    I think the vast majority of times in this case, the user would prefer to have the results be SomeThing, with a database name of some_thing. So, for example, some_thing would result in:

    • SomeThing model at models/SomeThing.php
    • SomeThingsController at controllers/SomeThingsController.php
    • etc.

    Real examples of this include a github_users table with the GithubUser model rather than the Github_user model, etc.

    opened by BenjaminRH 20
  • After following the instructions up to enter php artisan, returned an error [Segmentation fault: 11]

    After following the instructions up to enter php artisan, returned an error [Segmentation fault: 11]

    The Segmentation fault:11 error also came with an html error page which went on to describe the error as so:

    Symfony\Component\HttpKernel\Exception\FatalErrorException">FatalErrorException: Parse: parse error in /Applications/MAMP/htdocs/*/vendor/way/generators/src/commands/GenerateMigrationCommand.php line 77

    I don't currently have any migrations and I see it's something to do with parsing the MigrationName..

    opened by christianramsey 19
  • Can not install with Laravel 5.0

    Can not install with Laravel 5.0

    I get the following error:

    Problem 1 - Installation request for way/generators ~3.0 -> satisfiable by way/generators[3]. - Conclusion: remove laravel/framework 5.0.x-dev - way/generators 3 requires illuminate/support ~4.0 -> satisfiable by laravel/framework[4.0.x-dev, 4.1.x-dev, 4.2.x-dev], illuminate/support[4.0.x-dev, 4.1.x-dev, 4.2.x-dev, v4.0.0, v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.10, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.13, v4.1.14, v4.1.15, v4.1.16, v4.1.17, v4.1.18, v4.1.19, v4.1.2, v4.1.20, v4.1.21, v4.1.22, v4.1.23, v4.1.24, v4.1.25, v4.1.26, v4.1.27, v4.1.28, v4.1.29, v4.1.3, v4.1.30, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0-BETA1, v4.2.1, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8]. - Can only install one of: laravel/framework[5.0.x-dev, 4.0.x-dev]. - Can only install one of: laravel/framework[5.0.x-dev, 4.1.x-dev]. - Can only install one of: laravel/framework[5.0.x-dev, 4.2.x-dev]. - ...

    opened by reinvanleirsberghe 18
  • Added --plural to generate:resource, fixes #219

    Added --plural to generate:resource, fixes #219

    I use table names in languages other than english, and this new parameter allows to set the correct plural form to be used. Usage: php artisan generate:resource comune --plural="comuni"

    opened by vjandrea 17
  • Significant missing features in 2.0?

    Significant missing features in 2.0?

    Do you have any plans to re-add these features: generate:view generate:scaffold generate:form generate:test generate:pivot

    To the version 2.0?

    The primary reason I installed this add-on was to use the scaffold functionality, although I have used almost all of these (now missing) features. They have collectively saved me huge chunks of time.

    I'm a little surprised you'd make such a huge change without even making a note about it in the readme file. Your package is referenced all over the web for generating scaffolding.

    For the moment I will have to be content with continuing to use v1.1.

    opened by SaintPeter 16
  • Call to undefined method [package] in L5

    Call to undefined method [package] in L5

    I've try to comment $this->package('way/generators') in boot method

         * Booting
         */
        public function boot()
        {
         //   $this->package('way/generators');
        }
    

    But then you have new errors, like:

    php artisan generate:controller   TestController
    exception 'Way\Generators\Filesystem\FileNotFound' in /home/cawa/www/l5-app/vendor/way/generators/src/Way/Generators/Filesystem/Filesystem.php:45
    
    opened by CawaKharkov 15
  • Class 'Way\Generators\GeneratorsServiceProvider' not found

    Class 'Way\Generators\GeneratorsServiceProvider' not found

    I have followed the documentation for setting this up, and I am running into issues. I was able to successfully install the generators on one machine, but now on another I am running into issues after using the generate:resource command. The files were updated, so it shouldn't be different. On my localhost server I am seeing the error:

    Class 'Way\Generators\GeneratorsServiceProvider' not found /Applications/MAMP/htdocs/crowdsets/laravel-master/bootstrap/compiled.php

    I have updated my app.php file within app/config to include: 'Way\Generators\GeneratorsServiceProvider'

    I added the line: "way/generators": "dev-master"
    to composer.json

    When I checked php artisan (when I first installed), everything worked fine, and the generate commands appeared as they should.

    Now, typing php artisan gets me:

    PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProvider' not found in /Applications/MAMP/htdocs/crowdsets/laravel-master/bootstrap/compiled.php on line 4121 {"error":{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Class 'Way\Generators\GeneratorsServiceProvider' not found","file":"/Applications/MAMP/htdocs/crowdsets/laravel-master/bootstrap/compiled.php","line":4121}}

    The only thing I changed since installing, was creating a resource using the generate commands:

    php artisan generate:resource artist --fields="stage_name=string"

    This creates the expected files successfully (except for the test file). But when I tried to load the site on my new Mac today, it's been giving me these errors. Both machines are using Mac OS X 10.7.5 and the local server is run through MAMP. I get the same error when I try to run "php composer.phar update":

    [RuntimeException]
    Error Output: PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProv
    ider' not found in /Applications/MAMP/htdocs/crowdsets/laravel-master/boots
    trap/compiled.php on line 4121

    Thank you for your help.

    opened by msutyak 15
  • Mixed tabs and spaces

    Mixed tabs and spaces

    When I create a new migration using

    php artisan generate:migration create_bookings_table
    

    A class is nicely generated, but it mixes tabs and spaces. I use tabs as a default and therefore I noticed it.

    Selection_001

    Of course it's really minor, but it still bugs me because Laravel is such a consistently clean-coded framework.

    opened by laurentvd 13
  • replacing tabs by 4 spaces - PSR-2

    replacing tabs by 4 spaces - PSR-2

    With reference to PHP PSR-2 ( https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md ) code must use 4 spaces for indenting, not tabs.

    opened by BlueManLine 12
  • Hello, I could not run it in 5.6!

    Hello, I could not run it in 5.6!

    Hello, I could not run it in 5.6! Ask for the Illumiate ... Is it going to be updated?


    Problem 1 - Conclusion: remove laravel/framework v5.6.28 - Conclusion: don't install laravel/framework v5.6.28 ... v5.6.0

    - way/generators **2.0** requires illuminate/support 4.1.* -> satisfiable by illuminate/support[4.1.x-dev - v4.1.9]....
    - way/generators **2.6.1** requires illuminate/support 4.1.* -> satisfiable by illuminate/support[4.1.x-dev - v4.1.9].
    - don't install illuminate/support 4.1.x-dev|don't install laravel/framework 5.6.x-dev ... 5.6.x-dev
    
    - Installation request for laravel/framework 5.6.* -> satisfiable by laravel/framework[5.6.x-dev - v5.6.9].
    - Installation request for way/generators ~2.0 -> satisfiable by way/generators[2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.6.1].
    
    opened by Erisbv-zz 1
  • Using same table for both sides of pivot creates invalid migration

    Using same table for both sides of pivot creates invalid migration

    I have the need to create a many-to-many on the same table (objects can be associated with a number of other objects).

    The migration created tries to use the same foreign key:

    public function up()
    {
        Schema::create('munition_munition', function (Blueprint $table) {
            $table->integer('munition_id')->unsigned()->index();
            $table->foreign('munition_id')->references('id')->on('munitions')->onDelete('cascade');
            $table->integer('munition_id')->unsigned()->index();
            $table->foreign('munition_id')->references('id')->on('munitions')->onDelete('cascade');
            $table->primary(['munition_id', 'munition_id']);
        });
    }
    

    It should instead do something such as:

    public function up()
    {
        Schema::create('munition_munition', function (Blueprint $table) {
            $table->integer('munition_a_id')->unsigned()->index();
            $table->foreign('munition_a_id')->references('id')->on('munitions')->onDelete('cascade');
            $table->integer('munition_b_id')->unsigned()->index();
            $table->foreign('munition_b_id')->references('id')->on('munitions')->onDelete('cascade');
            $table->primary(['munition_a_id', 'munition_b_id']);
        });
    }
    
    opened by cruciux 0
  • npm install in windows 8.1 problem

    npm install in windows 8.1 problem

    untitled I'm unable to use the command 'npm install command it is showing a lot of errors and i can't figure it out,I'm taking Laravel 5 tutorials by Jeffrey Way and he even told that sometime this command won't work and you can then use 'sudo npm install',but i on Windows and stuck on this issue...

    opened by UzairNoman 0
  • Added fillable fields for models and resource generation

    Added fillable fields for models and resource generation

    • Added ability to add content to fillable field using migration data
      • Helps remember db structure as well as create model relations
      • Also important for auto filling models from input.
    • Updated model and controller config path to default laravel 4 structure
    opened by xwiz 0
Releases(3.0.2)
A collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans.

Filament is a collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans. Packages Admin Panel • Documentation • De

Filament 5.4k Jan 4, 2023
Llum illuminates your Laravel projects speeding up your Github/Laravel development workflow

Llum illuminates your Laravel projects speeding up your Github/Laravel development workflow

Sergi Tur Badenas 110 Dec 25, 2022
A collection of generators for Lumen and Laravel 5.

Lumen generators A collection of generators for Lumen and Laravel 5. Contents Why ? Installation Quick Usage Detailed Usage Model Generator Migration

Amine Ben hammou 349 Mar 24, 2022
Generate form validators for Laravel: an extension of way/generators

Laravel Form Validator Contents Introduction Installation Usage Example Tests Introduction After using Jeffrey Way's Generator and his Validator packa

John Evans 6 Jan 14, 2022
Laravel File Generators with config and publishable stubs

Laravel File Generators Custom Laravel File Generators with a config file and publishable stubs. You can publish the stubs. You can add your own stubs

Ben-Piet O'Callaghan 116 Oct 29, 2022
A Laravel package to speed up deployment by skipping asset compilation whenever possible.

Airdrop for Laravel Read the full docs at hammerstone.dev/airdrop/docs. Hammerstone Airdrop for Laravel is a package that speeds up your deploys by sk

Hammerstone 160 Nov 24, 2022
Flysystem storage with local metadata storage for speed and manageability.

Laravel Filer This project was started to scratch my itch on our growing Laravel site: Metadata for all files is stored in a local repository - Suppor

Nick Vahalik 16 May 23, 2022
Livewire trait (throttling). Limiting request processing speed

Livewire Throttling Installation You can install the package via composer: composer require f1uder/livewire-throttling Usage Livewire component <?php

Fluder 5 Dec 7, 2022
Durable workflow engine that allows users to write long running persistent distributed workflows in PHP powered by Laravel queues

Durable workflow engine that allows users to write long running persistent distributed workflows (orchestrations) in PHP powered by Laravel queues. Inspired by Temporal and Azure Durable Functions.

null 268 Dec 27, 2022
symfony workflow component for laravel7 and 8 ,php 7 and 8

Laravel workflow Use the Symfony Workflow component in Laravel8,PHP7,PHP8 This repository based on @brexis,his project since 2019-09 No longer maintai

null 3 Jul 21, 2022
A new way of Running Tinker. Simplify the Web Artisan's workflow.

Tinkerun A new way of Running Tinker. Simplify the Web Artisan's workflow. inspired by Tinkerwell Download links Github Releases ?? If you are using V

Tinkerun 327 Dec 29, 2022
Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App.

OvalFi Laravel Package Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App. Installation You can in

Paul Adams 2 Sep 8, 2022
🧑‍🔬 The missing assertions for your views in your Laravel applications.

Laravel View Assertions The missing assertions for your views in your Laravel applications. Installation You'll have to follow a couple of simple step

Sven Luijten 4 Dec 21, 2022
Automatically load your helpers in your laravel application.

Laravel AutoHelpers Automatically load your helpers in your laravel application. Installation You can install the package via composer: composer requi

Florian Wartner 6 Jul 26, 2021
Podcastwala - Your very own Podcast web app built with Laravel. Manage and listen to your favorite podcasts

Podcastwala Your very own Podcast web app built with Laravel 5. This web app enables you to manage RSS feeds for your favorite podcasts and listen to

null 142 Sep 14, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Jan 2, 2023
Stop duplicating your Eloquent query scopes and constraints in PHP. This package lets you re-use your query scopes and constraints by adding them as a subquery.

Laravel Eloquent Scope as Select Stop duplicating your Eloquent query scopes and constraints in PHP. This package lets you re-use your query scopes an

Protone Media 75 Dec 7, 2022
Using this site your can buy and sell your property.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Hossain Mohammad Shahidullah Jaber 4 Nov 17, 2022
A package to keep track of your pages & understand your audience

A clean way to track your pages & understand your user's behavior Installation You can install the package via composer: composer require coderflexx/l

Coderflex 178 Jan 4, 2023