Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create. The directives you want Forman to perform are outlined in a JSON based template file.
## What does it do?- Structure
- Copy files and directories
- Move files and directories
- Delete files and directores
- Touch files
- Make new directories
- Composer
- Require composer package dependencies
- Require development composer package dependencies
- Manage the composer autoload > classmap
- Manage the composer autoload > psr-0 settings
- Manage the composer autoload > psr-4 settings
See optional move and permissions above.
### Install with HomebrewYou can also install Foreman via Homebrew. If you don't already have homebrew installed, you can install it with:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Next you'll need to add the sources necessary to install foreman:
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap josegonzalez/homebrew-php
Now update all formulae
brew update
And then install Foreman
brew install foreman
To update Foreman, you may use the foreman self-update
command.
To get started you'll want to generate a default / blank Foreman template. You can do this with the command:
foreman scaffold /path/to/my/template.json
Note: If you provide a directory instead of a file, Foreman will create a foreman-tpl.json file in the given directory.
A default Foreman template looks like this:
{
"structure": {
"copy": [
{
"from": "",
"to": ""
}
],
"move": [
{
"from": "",
"to": ""
}
],
"delete": [
],
"touch": [
],
"mkdir": [
]
},
"composer": {
"require": [
{
"package": "laravel/framework",
"version": "4.1.*"
}
],
"require-dev": [
{
"package": "",
"version": ""
}
],
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/test/TestCase.php"
],
"psr-0": [
],
"psr-4": [
]
}
}
}
For structure references you can use either an absolute path (to a file or directory) or a path relative to your new application's root.
## Build a Laravel app from a templateIn order to use your Foreman template to generate a new Laravel application you just need to use the build
command.
The first argument is the absolute path to where you want to install the application, the second argument is the location of the template file.
foreman build /install/app/here /path/to/template.json
Now Foreman will generate your Laravel app with all your configuration applied.