/**
* Generate project.
*
* @param \JonathanTorres\Construct\Settings $settings The command settings made by the user.
* @param \JonathanTorres\Construct\Helpers\Git $git The git helper.
* @param \JonathanTorres\Construct\Helpers\Composer $composer The composer helper.
*
* @return void
*/
public function generate(Settings $settings, Git $git, Composer $composer)
{
$this->settings = $settings;
$this->saveNames();
$this->root();
$this->src();
$this->docs();
$this->gitignore();
$this->testing();
if ($this->settings->withPhpcsConfiguration()) {
$this->phpcs();
}
if ($this->settings->withVagrantFile()) {
$this->vagrant();
}
if ($this->settings->withEditorConfig()) {
$this->editorConfig();
}
$this->travis();
$this->license($git);
$this->composer($git);
$this->projectClass();
$this->projectTest();
$this->gitattributes();
if ($this->settings->withGitInit()) {
$this->gitInit($git);
}
$this->composerInstall($composer);
}