PHPackages                             on3n3o/generators - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. on3n3o/generators

ActiveLibrary

on3n3o/generators
=================

Custom Laravel File Generators with config and publishable stubs.

6.06(5y ago)012MITPHPPHP ^7.2.5

Since Apr 11Pushed 5y agoCompare

[ Source](https://github.com/on3n3o/generators)[ Packagist](https://packagist.org/packages/on3n3o/generators)[ Patreon](https://www.patreon.com/bpocallaghan)[ RSS](/packages/on3n3o-generators/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (3)Versions (52)Used By (0)

Laravel File Generators
=======================

[](#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 to generate.

This package is being used in the [Admin Starter Project](https://github.com/bpocallaghan/titan-starter) that focusses on test driven development and has the foundation ready for you.

```
Laravel 5.1 : v2.1.3
Laravel 5.2 - 5.3 : v3.0.3
Laravel 5.4 : v4.1.9
Laravel 5.5 - 5.8 : v5.0.0+
Laravel 6.0 : v5.1.0+
Laravel 7.0 : v6.0
Laravel 8.0 : v7.0+

```

Commands
--------

[](#commands)

```
php artisan generate:publish-stubs
php artisan generate:model
php artisan generate:view
php artisan generate:controller
php artisan generate:migration
php artisan generate:migration:pivot
php artisan generate:seed
php artisan generate:resource
php artisan generate:repository
php artisan generate:contract
php artisan generate:notification
php artisan generate:event
php artisan generate:listener
php artisan generate:event-listener
php artisan generate:trait
php artisan generate:job
php artisan generate:console
php artisan generate:middleware
php artisan generate:factory
php artisan generate:test
php artisan generate:file
php artisan generate:exception
```

### Option for all the commands

[](#option-for-all-the-commands)

`--force` This will override the existing file, if it exists.

### Option for all the commands, except `views` and `migration:pivot`

[](#option-for-all-the-commands-except-views-and-migrationpivot)

`--plain` This will use the .plain stub of the command (generate an empty controller)

### Customization

[](#customization)

This is for all except the `migration` and `migration:pivot` commands

```
php artisan generate:file foo.bar --type=controller
php artisan generate:view foo.bar --stub=view_show --name=baz_show
php artisan generate:file foo.bar --type=controller --stub=controller_custom --name=BazzzController --plain --force

```

You can specify a custom name of the file to be generated. You can add the --plain or --force options. You can override the default stub to be used. You can create your own stubs with the available placeholders. You can create new settings' types, for example:

- 'exception' =&gt; \['namespace' =&gt; '\\Exceptions', 'path' =&gt; './app/Exceptions/', 'postfix' =&gt; 'Exception'\],

[Available placeholders](https://github.com/bpocallaghan/generators/blob/master/resources/stubs/example.stub)

Views Custom Stubs
------------------

[](#views-custom-stubs)

```
php artisan generate:view posts
php artisan generate:view admin.posts --stub=custom
php artisan generate:view admin.posts --stub=another_file

```

Installation
------------

[](#installation)

Update your project's `composer.json` file.

```
composer require bpocallaghan/generators --dev

```

Add the Service Provider (Laravel 5.5+ has automatic discovery of packages) You'll only want to use these generators for local development, add the provider in `app/Providers/AppServiceProvider.php`:

```
public function register()
{
    if ($this->app->environment() == 'local') {
        $this->app->register(\Bpocallaghan\Generators\GeneratorsServiceProvider::class);
    }
}
```

Run `php artisan` command to see the new commands in the `generate:*` section

Usage
-----

[](#usage)

- [Models](#models)
- [Views](#views)
- [Controllers](#controllers)
- [Migrations](#migrations)
- [Pivot Tables](#pivot-tables)
- [Database Seeders](#database-seeders)
- [Resource](#resource)
- [Repository](#repository)
- [Contract](#contract)
- [Notifications](#notifications)
- [Events and Listeners](#events-and-listeners)
- [Trait](#trait)
- [Job](#job)
- [Console](#console)
- [Middleware](#middleware)
- [Factory](#factory)
- [Test](#test)
- [File](#file)
- [Configuration](#configuration)

### Models

[](#models)

```
php artisan generate:model bar
php artisan generate:model foo.bar --plain
php artisan generate:model bar --force
php artisan generate:model bar --migration --schema="title:string, body:text"

```

### Views

[](#views)

```
php artisan generate:view foo
php artisan generate:view foo.bar
php artisan generate:view foo.bar --stub=view_show
php artisan generate:view foo.bar --name=foo_bar

```

### Controllers

[](#controllers)

```
php artisan generate:controller foo
php artisan generate:controller foo.bar
php artisan generate:controller fooBar
php artisan generate:controller bar --plain
php artisan generate:controller BarController --plain

```

- The `Controller` postfix will be added if needed.

### Migrations

[](#migrations)

This is very similar as [Jeffrey Way's](https://github.com/laracasts/Laravel-5-Generators-Extended)

```
php artisan generate:migration create_users_table
php artisan generate:migration create_users_table --plain
php artisan generate:migration create_users_table --force
php artisan generate:migration create_posts_table --schema="title:string, body:text, slug:string:unique, published_at:date"

```

### Pivot Tables

[](#pivot-tables)

This is very similar as [Jeffrey Way's](https://github.com/laracasts/Laravel-5-Generators-Extended)

```
php artisan generate:migration:pivot tags posts

```

### Database Seeders

[](#database-seeders)

```
php artisan generate:seed bar
php artisan generate:seed BarTableSeeder

```

- The `TableSeeder` suffix will be added if needed.

### Resource

[](#resource)

```
php artisan generate:resource bar
php artisan generate:resource foo.bar
php artisan generate:resource foo.bar_baz
php artisan generate:resource bar --schema="title:string, body:text, slug:string:unique, published_at:date"
php artisan generate:resource articles --controller=admin

```

- This will generate a Bar model, BarsController, resources views (in config), create\_bars\_table migration, BarTableSeeder
- In the config there is a `resource_views` array, you can specify the views that you want to generate there, just make sure the stub exist.
- This will also ask you to generate the 'repository - contract pattern' files.
- The `--controller=admin` allows you to use the controller\_admin stub when generating the controller.

### Repository

[](#repository)

```
php artisan generate:repository Posts

```

This will generate a Posts Repository file to be used in your controller.

### Contract

[](#contract)

```
php artisan generate:contract Cache

```

This will generate a Cache Contract file to be used with your repositories.

### Notifications

[](#notifications)

```
php artisan generate:notification UserRegistered

```

This will generate a UserRegistered notification. Laravel provides support for sending notifications across a variety of delivery channels, including mail, SMS (via Nexmo), and Slack. Notifications may also be stored in a database so they may be displayed in your web interface.

### Events and Listeners

[](#events-and-listeners)

```
php artisan generate:event InvoiceWasPaid
php artisan generate:listener NotifyUserAboutPayment --event=InvoiceWasPaid
php artisan generate:event-listener

```

This will generate the event and listener. Laravel's events provides a simple observer implementation, allowing you to subscribe and listen for various events that occur in your application

`php artisan generate:event-listener `Will generate all the missing events and listeners defined in your EventServiceProvider.

### Trait

[](#trait)

```
php artisan generate:trait Http\Controllers\Traits\Bar

```

This will generate a FooBar Trait file. The command will use the name as your namespace. `generate:trait Foo` will create a file in `app/Foo.php`, `generate:trait Foo\Bar` will create a file in `app/Foo/Bar.php`.

### Job

[](#job)

```
php artisan generate:job SendReminderEmail

```

This will generate a SendReminderEmail Job file.

### Console (Artisan Command)

[](#console-artisan-command)

```
php artisan generate:console SendEmails
php artisan generate:console SendEmails --command=send:emails

```

This will generate a SendEmails Artisan Command file. The --command option is optional.

### Middleware

[](#middleware)

```
php artisan generate:middleware AuthenticateAdmin

```

This will generate an AuthenticateAdmin Middleware file.

### Factory

[](#factory)

```
php artisan generate:factory Post
php artisan generate:factory PostFactory

```

This will generate a PostFactory model file.

### Test

[](#test)

```
php artisan generate:test UserCanLogin
php artisan generate:test Post --unit
php artisan generate:test Auth\LoginTest

```

This will generate Feature\\UserCanLogin and Unit\\PostTest and Unit\\Auth\\LoginTest files.

### Configuration

[](#configuration)

```
php artisan generate:publish-stubs

```

This will copy the config file to `/config/generators.php`. Here you can change the defaults for the settings of each `type`, like model, view, controller, seed. You can also change the namespace, path where to create the file, the pre/post fix, and more. You can also add new stubs.

This will also copy all the stubs to `/resources/stubs/`. Here you can make changes to the current stubs, add your own boilerplate / comments to the files. You can also add your own stubs here and specify it in the config to be used. **Migration Stub Note**: The `migration.stub` is only the outer part and the `schema_create.stub or schema_change.stub` is where you modify the schema itself. The `schema_create.stub` has boilerplate added to it.

### File

[](#file)

This is the base command for the view, model, controller, seed commands. The migration and migration:pivot uses Jeffrey's classes. In the config there is a `settings` array, this is the 'types' and their settings. You can add more, for example, if you use repositories, you can add it here.

```
php artisan generate:file foo.bar --type=view
php artisan generate:file foo.bar --type=controller
php artisan generate:file foo.bar --type=model
php artisan generate:file foo.bar --type=model --stub=model_custom

```

Shortcuts
---------

[](#shortcuts)

```
art=php artisan
model=php artisan generate:model
view=php artisan generate:view
view:index=php artisan generate:view:index
view:create_edit=php artisan generate:view:create_edit
view:show=php artisan generate:view:show
controller=php artisan generate:controller
migration=php artisan generate:migration
migration:pivot=php artisan generate:migration:pivot
seed=php artisan generate:seed
resource=php artisan generate:resource

```

Customizing file was created message to add support for ide opening the files
-----------------------------------------------------------------------------

[](#customizing-file-was-created-message-to-add-support-for-ide-opening-the-files)

Make links for opening output.Add output\_path\_handler as a function to your config/generators.php.Example:

```
'output_path_handler' => static function($path){
    return 'file:///' . base_path() . $path;
},

```

This will output a file schema uri which JetBrain Products (Intellij,Php Storm,Web Storm,...) then can open directly from your terminal.

Thank you
---------

[](#thank-you)

- Thank you [Taylor Ottwell](https://github.com/taylorotwell) for [Laravel](http://laravel.com/).
- Thank you [Jeffrey Way](https://github.com/JeffreyWay) for the awesome resources at [Laracasts](https://laracasts.com/).

My other Packages
-----------------

[](#my-other-packages)

- [Notify](https://github.com/bpocallaghan/notify) Laravel Flash Notifications with icons and animations and with a timeout
- [Alert](https://github.com/bpocallaghan/alert) A helper package to flash a bootstrap alert to the browser via a Facade or a helper function.
- [Impersonate User](https://github.com/bpocallaghan/impersonate) This allows you to authenticate as any of your customers.
- [Sluggable](https://github.com/bpocallaghan/sluggable) Provides a HasSlug trait that will generate a unique slug when saving your Laravel Eloquent model.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 97.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Recently: every ~30 days

Total

50

Last Release

2098d ago

Major Versions

2.1.3 → 3.0.02016-03-10

3.0.2 → 4.0.02017-03-09

3.0.3 → 4.1.42017-07-19

4.1.9 → 5.0.02017-09-20

5.2.3 → 6.0.12020-04-18

PHP version history (6 changes)1.0.0PHP &gt;=5.4.0

4.1.2PHP &gt;=5.6.4

5.0.0PHP &gt;=7.0.0

5.1.0PHP &gt;=7.2

5.2.0PHP ^7.2

6.0.1PHP ^7.2.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/f67ba133a5e51efd25de01c37b9523ad388b2ef90ef64dda72f55c000b69f2c0?d=identicon)[on3n3o](/maintainers/on3n3o)

---

Top Contributors

[![bpocallaghan](https://avatars.githubusercontent.com/u/883465?v=4)](https://github.com/bpocallaghan "bpocallaghan (200 commits)")[![Stevemoretz](https://avatars.githubusercontent.com/u/27680142?v=4)](https://github.com/Stevemoretz "Stevemoretz (4 commits)")[![markcameron](https://avatars.githubusercontent.com/u/1106894?v=4)](https://github.com/markcameron "markcameron (2 commits)")

---

Tags

laravelconfigstubsgeneratorscustomizationcommands

### Embed Badge

![Health badge](/badges/on3n3o-generators/health.svg)

```
[![Health](https://phpackages.com/badges/on3n3o-generators/health.svg)](https://phpackages.com/packages/on3n3o-generators)
```

###  Alternatives

[bpocallaghan/generators

Custom Laravel File Generators with config and publishable stubs.

11965.8k3](/packages/bpocallaghan-generators)[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[laravel/octane

Supercharge your Laravel application's performance.

4.0k21.5M159](/packages/laravel-octane)[inertiajs/inertia-laravel

The Laravel adapter for Inertia.js.

2.4k51.5M585](/packages/inertiajs-inertia-laravel)[laravel/browser-kit-testing

Provides backwards compatibility for BrowserKit testing in the latest Laravel release.

5139.4M286](/packages/laravel-browser-kit-testing)[laravel/nightwatch

The official Laravel Nightwatch package.

3486.1M13](/packages/laravel-nightwatch)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
