Skip to content

The Effectra/Generator package provides a set of tools for generating PHP class files and configuration files.

Notifications You must be signed in to change notification settings

effectra/generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

Effectra\Generator

The Effectra\Generator package provides a set of tools for generating PHP class files and configuration files.

Installation

You can install the package via Composer:

composer require effectra/generator

Usage

Generate Class

To generate a PHP class file using the GeneratorClass class, follow these steps:

  1. Create an instance of the Creator class:
$creator = new Creator();
  1. Create an instance of the GeneratorClass class, providing the creator and the desired class name:
$generator = new GeneratorClass($creator, 'MyClass');
  1. Customize the class by adding properties, methods, and other elements using the available methods provided by the GeneratorClass and Creator classes.

  2. Generate the PHP code for the class:

$template = $generator->generate();
  1. Save the generated code to a file:
$template->save('/path/to/MyClass.php');

Generate Config File

To generate a configuration file using the GeneratorConfigFile class, follow these steps:

  1. Create an instance of the Creator class:
$creator = new Creator();
  1. Create an instance of the GeneratorConfigFile class, providing the creator and the ConfigFile instance:
$configFile = new ConfigFile('/path/to/config.php');
$generator = new GeneratorConfigFile($creator, $configFile);
  1. Generate a new section in the configuration file:
$section = 'database';
$config = [
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'mydatabase',
    'username' => 'myusername',
    'password' => 'mypassword',
];

$template = $generator->createSection($section, $config);
  1. Save the updated configuration file:
$template->save('/path/to/config.php');

Contributing

Contributions are welcome! If you find any issues or would like to suggest new features, please open an issue on the GitHub repository.

License

This package is open-source software licensed under the MIT license.