diff --git a/src/ncc/CLI/Commands/BuildCommand.php b/src/ncc/CLI/Commands/BuildCommand.php index f2bff4f..c9978cd 100644 --- a/src/ncc/CLI/Commands/BuildCommand.php +++ b/src/ncc/CLI/Commands/BuildCommand.php @@ -92,7 +92,7 @@ // Build the project try { - $build_configuration = $args['config'] ?? $args['c'] ?? BuildConfigurationValues::DEFAULT; + $build_configuration = $args['config'] ?? $args['c'] ?? BuildConfigurationValues::DEFAULT->value; $output = $project_manager->build($build_configuration, $options); } catch (Exception $e) diff --git a/src/ncc/Classes/NccExtension/NccCompiler.php b/src/ncc/Classes/NccExtension/NccCompiler.php index 9d66699..2b152e5 100644 --- a/src/ncc/Classes/NccExtension/NccCompiler.php +++ b/src/ncc/Classes/NccExtension/NccCompiler.php @@ -87,7 +87,8 @@ * @throws PathNotFoundException * @noinspection UnusedFunctionResultInspection */ - public function build(string $build_configuration=BuildConfigurationValues::DEFAULT, array $options=[]): string + // TODO: $build_configuration could use enum case + public function build(string $build_configuration=BuildConfigurationValues::DEFAULT->value, array $options=[]): string { $configuration = $this->project_manager->getProjectConfiguration()->getBuild()->getBuildConfiguration($build_configuration); $configuration->setOptions(array_merge($configuration->getOptions(), $options)); @@ -327,7 +328,8 @@ * @param string $build_configuration * @return void */ - public function processMetadata(PackageWriter $package_writer, string $build_configuration=BuildConfigurationValues::DEFAULT): void + // TODO: $build_configuration could use the enum case + public function processMetadata(PackageWriter $package_writer, string $build_configuration=BuildConfigurationValues::DEFAULT->value): void { $metadata = new Metadata($this->project_manager->getProjectConfiguration()->getProject()->getCompiler()); diff --git a/src/ncc/Classes/PhpExtension/ExecutableCompiler.php b/src/ncc/Classes/PhpExtension/ExecutableCompiler.php index 3b788dc..4fa9f46 100644 --- a/src/ncc/Classes/PhpExtension/ExecutableCompiler.php +++ b/src/ncc/Classes/PhpExtension/ExecutableCompiler.php @@ -41,7 +41,7 @@ * @inheritDoc * @throws BuildException */ - public function build(string $build_configuration = BuildConfigurationValues::DEFAULT, array $options=[]): string + public function build(string $build_configuration = BuildConfigurationValues::DEFAULT->value, array $options=[]): string { $configuration = $this->getProjectManager()->getProjectConfiguration()->getBuild()->getBuildConfiguration($build_configuration); diff --git a/src/ncc/Enums/Options/BuildConfigurationValues.php b/src/ncc/Enums/Options/BuildConfigurationValues.php index 9454e26..7311b25 100644 --- a/src/ncc/Enums/Options/BuildConfigurationValues.php +++ b/src/ncc/Enums/Options/BuildConfigurationValues.php @@ -22,9 +22,9 @@ namespace ncc\Enums\Options; - final class BuildConfigurationValues + enum BuildConfigurationValues : string { - public const DEFAULT = 'default'; + case DEFAULT = 'default'; - public const ALL = 'all'; + case ALL = 'all'; } \ No newline at end of file diff --git a/src/ncc/Interfaces/CompilerInterface.php b/src/ncc/Interfaces/CompilerInterface.php index a34589a..8225603 100644 --- a/src/ncc/Interfaces/CompilerInterface.php +++ b/src/ncc/Interfaces/CompilerInterface.php @@ -41,5 +41,6 @@ * @param array $options Optional. The options to use/override for this build * @return string */ - public function build(string $build_configuration=BuildConfigurationValues::DEFAULT, array $options=[]): string; + // TODO: $build_configuration could use the enum case directly + public function build(string $build_configuration=BuildConfigurationValues::DEFAULT->value, array $options=[]): string; } \ No newline at end of file diff --git a/src/ncc/Managers/PackageManager.php b/src/ncc/Managers/PackageManager.php index 7636d77..dacade0 100644 --- a/src/ncc/Managers/PackageManager.php +++ b/src/ncc/Managers/PackageManager.php @@ -805,7 +805,7 @@ try { $package_path = (new ProjectManager($project_detection->getProjectFilePath()))->build( - BuildConfigurationValues::DEFAULT, + BuildConfigurationValues::DEFAULT->value, [BuildConfigurationOptions::OUTPUT_FILE => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc'] ); @@ -829,7 +829,7 @@ { $project_manager = ProjectManager::initializeFromComposer(dirname($project_detection->getProjectFilePath()), $options); $package_path = $project_manager->build( - BuildConfigurationValues::DEFAULT, + BuildConfigurationValues::DEFAULT->value, [BuildConfigurationOptions::OUTPUT_FILE => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc'] ); diff --git a/src/ncc/Managers/ProjectManager.php b/src/ncc/Managers/ProjectManager.php index dca3b4a..484eb05 100644 --- a/src/ncc/Managers/ProjectManager.php +++ b/src/ncc/Managers/ProjectManager.php @@ -154,7 +154,7 @@ * @throws NotSupportedException * @throws PathNotFoundException */ - public function build(string $build_configuration=BuildConfigurationValues::DEFAULT, array $options=[]): string + public function build(string $build_configuration=BuildConfigurationValues::DEFAULT->value, array $options=[]): string { $configuration = $this->project_configuration->getBuild()->getBuildConfiguration($build_configuration); @@ -275,7 +275,7 @@ * @throws IOException * @throws PathNotFoundException */ - public function getExecutionUnits(string $build_configuration=BuildConfigurationValues::DEFAULT): array + public function getExecutionUnits(string $build_configuration=BuildConfigurationValues::DEFAULT->value): array { $execution_units = []; @@ -301,7 +301,7 @@ * @return array * @throws NotSupportedException */ - public function getComponents(string $build_configuration=BuildConfigurationValues::DEFAULT): array + public function getComponents(string $build_configuration=BuildConfigurationValues::DEFAULT->value): array { $configuration = $this->project_configuration->getBuild()->getBuildConfiguration($build_configuration); @@ -317,7 +317,7 @@ * @return array * @throws NotSupportedException */ - public function getResources(string $build_configuration=BuildConfigurationValues::DEFAULT): array + public function getResources(string $build_configuration=BuildConfigurationValues::DEFAULT->value): array { $configuration = $this->project_configuration->getBuild()->getBuildConfiguration($build_configuration); @@ -334,7 +334,7 @@ * @param string $build_configuration * @return array */ - public function getRuntimeConstants(string $build_configuration=BuildConfigurationValues::DEFAULT): array + public function getRuntimeConstants(string $build_configuration=BuildConfigurationValues::DEFAULT->value): array { $configuration = $this->project_configuration->getBuild()->getBuildConfiguration($build_configuration); diff --git a/src/ncc/Objects/ProjectConfiguration.php b/src/ncc/Objects/ProjectConfiguration.php index d4121ae..882b621 100644 --- a/src/ncc/Objects/ProjectConfiguration.php +++ b/src/ncc/Objects/ProjectConfiguration.php @@ -206,7 +206,7 @@ * @return string[] * @throws ConfigurationException */ - public function getRequiredExecutionPolicies(string $build_configuration=BuildConfigurationValues::DEFAULT): array + public function getRequiredExecutionPolicies(string $build_configuration=BuildConfigurationValues::DEFAULT->value): array { if(count($this->execution_policies) === 0) { @@ -287,7 +287,7 @@ } } - if($build_configuration === BuildConfigurationValues::ALL) + if($build_configuration === BuildConfigurationValues::ALL->value) { /** @var BuildConfiguration $configuration */ foreach($this->build->getBuildConfigurations() as $configuration) @@ -424,7 +424,7 @@ throw new ConfigurationException(sprintf('Build configuration build.main points to a undefined execution policy "%s"', $this->build->getMain())); } - if($this->build->getMain() === BuildConfigurationValues::ALL) + if($this->build->getMain() === BuildConfigurationValues::ALL->value) { throw new ConfigurationException(sprintf('Build configuration build.main cannot be set to "%s"', BuildConfigurationValues::ALL)); } diff --git a/src/ncc/Objects/ProjectConfiguration/Build.php b/src/ncc/Objects/ProjectConfiguration/Build.php index 82472ae..577d7b7 100644 --- a/src/ncc/Objects/ProjectConfiguration/Build.php +++ b/src/ncc/Objects/ProjectConfiguration/Build.php @@ -115,7 +115,7 @@ public function __construct(string $source_path, ?string $default_configuration=null) { $this->source_path = $source_path; - $this->default_configuration = $default_configuration ?? BuildConfigurationValues::DEFAULT; + $this->default_configuration = $default_configuration ?? BuildConfigurationValues::DEFAULT->value; $this->exclude_files = []; $this->options = []; $this->define_constants = []; @@ -484,7 +484,7 @@ */ public function getBuildConfiguration(string $name): BuildConfiguration { - if($name === BuildConfigurationValues::DEFAULT) + if($name === BuildConfigurationValues::DEFAULT->value) { $name = $this->default_configuration; }