Configuration

This package requires minimal configuration.

StubCompiler Configuration

The only required configuration is the path to your stubs directory:

$compiler = new StubCompiler('/path/to/stubs');

Stubs Directory Structure

Create a stubs/ directory with .stub template files:

stubs/
+-- controller.stub
+-- migration.stub
+-- model.stub
+-- request.stub
+-- service.stub

Stub File Format

Stubs use {{token}} placeholders:

<?php
// stubs/controller.stub

namespace {{namespace}}\Http\Controllers;

class {{class}}Controller
{
    // ...
}

FileWriter Configuration

Configure via constructor parameters:

$writer = new FileWriter(
    overwrite: false,      // Whether to overwrite existing files
    dirPermissions: 0755   // Permissions for created directories
);

Parameters

ParameterTypeDefaultDescription
overwriteboolfalseOverwrite existing files
dirPermissionsint0755Directory creation permissions

Generator Configuration

Generators require three dependencies:

$generator = new MyGenerator(
    compiler: $stubCompiler,  // StubCompiler instance
    writer: $fileWriter,      // FileWriter instance
    basePath: '/plugin/path'  // Base path for outputs
);

Default Token Values

Set default replacements for all compilations:

$compiler->setDefaults([
    'namespace'  => 'MyPlugin',
    'textDomain' => 'my-plugin',
    'prefix'     => 'myplugin_',
    'author'     => 'Your Name',
]);

These values are automatically included in every compile() call but can be overridden.