PHPackages                             bmartel/workshop - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. bmartel/workshop

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

bmartel/workshop
================

A package generator for web artisans.

1.0.7(10y ago)531MITPHP

Since Feb 5Pushed 10y ago1 watchersCompare

[ Source](https://github.com/bmartel/workshop)[ Packagist](https://packagist.org/packages/bmartel/workshop)[ RSS](/packages/bmartel-workshop/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (6)Versions (10)Used By (0)

Workshop
========

[](#workshop)

Workshop is a commandline tool for quickly generating Laravel based composer packages.

[![Build Status](https://camo.githubusercontent.com/f978b27da023d9c0c7bb4264df1ef0b93d5b8a5b4615228ab9c713baf625ffc5/68747470733a2f2f7472617669732d63692e6f72672f626d617274656c2f776f726b73686f702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/bmartel/workshop) [![Latest Stable Version](https://camo.githubusercontent.com/793dd3787ae809cf3cb42215b60ab33b3afbe8be47df0babffea8364aa2837d0/68747470733a2f2f706f7365722e707567782e6f72672f626d617274656c2f776f726b73686f702f762f737461626c652e737667)](https://packagist.org/packages/bmartel/workshop) [![Total Downloads](https://camo.githubusercontent.com/edc1e3757eb4c0b3e860e48735edb986273cb25051a71430e2f08099fb719826/68747470733a2f2f706f7365722e707567782e6f72672f626d617274656c2f776f726b73686f702f646f776e6c6f6164732e737667)](https://packagist.org/packages/bmartel/workshop) [![Latest Unstable Version](https://camo.githubusercontent.com/90458485db61892e78fddbbe3b589f7e8d81d7149d0513526da77b41203bb80a/68747470733a2f2f706f7365722e707567782e6f72672f626d617274656c2f776f726b73686f702f762f756e737461626c652e737667)](https://packagist.org/packages/bmartel/workshop) [![License](https://camo.githubusercontent.com/04e3953ca52669a46b453313f40cef0c3a1c5101f69f18dbf7d1380adc87b53c/68747470733a2f2f706f7365722e707567782e6f72672f626d617274656c2f776f726b73686f702f6c6963656e73652e737667)](https://packagist.org/packages/bmartel/workshop)

Usage
-----

[](#usage)

### Install

[](#install)

```
composer global require "bmartel/workshop=~1.0"

```

### Build something

[](#build-something)

```
workshop build vendor/package

```

`cd package` and you will see a skeleton structure for building a package.

### Laravel Generators

[](#laravel-generators)

For convenience, most of the Laravel generators have been included so you can quickly build up Laravel based packages.

Any `make:` generator command you are used to in a Laravel project, `php artisan make:{something}`, is available through `workshop build:{something}`. All commands are also available through the `make` alias `workshop make:{something}`, so you only have to remember the Laravel API for the commands.

By default all generators will place the generated class files in a best guess location based on your namespacing and folder structure. If the defaults aren't working for you, you can always explicitly state where you want your files to be generated by providing the full class namespace as the name argument to the generator commands.

*Migrations will always be generated into a root level `migrations` folder of the package. This is due to the structure and default handling in the ServiceProvider included with all workshop scaffolded packages.*

```
workshop build:console  [--command]
workshop build:controller  [--plain]
workshop build:event
workshop build:job  [--queued]
workshop build:listener  (--event) [--queued]
workshop build:middleware
workshop build:migration  [--create] [--table]
workshop build:model  [--migration]
workshop build:request

```

For more information regarding a specific command, see the Laravel official documentation.

#### Laravel packages

[](#laravel-packages)

You can make use of this package and develop it within a local laravel application you may have. To pull this package into your local development app, add the vendor/package you provided as argument to the workshop build command to the app's `composer.json` (lets assume the package created was acme/sprockets):

```
require: {
    "acme/sprockets": "dev-master"
},
"repositories": [
	{
		"type": "vcs",
		"url": "/path/to/where/acme/sprockets/was/created/locally"
	}
],

```

Run `composer update acme/sprockets` from your laravel app's root directory, and you are setup for easy local package development.

The development workflow simply becomes: make a change in the package on your local filesystem, go to your local development laravel app you are including the package and run `composer update vendor/package`. Rinse and repeat until you are ready to push it up to github or bitbucket and add the package to packagist, upon which you can drop the repostories entry and just include the composer require entry for the package.

And thats really all there is to it. Spend more time building something great, and less time naming, renaming and copying files.

Contributing
------------

[](#contributing)

All contributions whether features or fixes should be backed by a test which outlines the work being done. Pull requests should be made to the develop branch.

### Development

[](#development)

To begin development, run `composer install` in the root of the project and start making changes. As you develop you can run the tests via `vendor/bin/phpspec run -v` .

Credits
-------

[](#credits)

Developed and maintained by Brandon Martel

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~30 days

Recently: every ~53 days

Total

8

Last Release

3906d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7bcc44d059201b5c58314b3ba84a42891d52c376486f26493e81f17d6f76bfe8?d=identicon)[bmartel](/maintainers/bmartel)

---

Top Contributors

[![bmartel](https://avatars.githubusercontent.com/u/2242258?v=4)](https://github.com/bmartel "bmartel (42 commits)")

### Embed Badge

![Health badge](/badges/bmartel-workshop/health.svg)

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

###  Alternatives

[livewire/flux

The official UI component library for Livewire.

9475.0M86](/packages/livewire-flux)[phpro/soap-client

A general purpose SoapClient library

8885.6M46](/packages/phpro-soap-client)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5205.3M82](/packages/symplify-monorepo-builder)[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

4.8k4.3k](/packages/shlinkio-shlink)[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

310107.9k1](/packages/cognesy-instructor-php)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)

PHPackages © 2026

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