ConfigurableOptionsBuilder.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Admin\ProductConfiguration\Helper;
  3. use ThurData\Servers\KerioEmail\App\Services\ConfigurableOptions\ConfigurableOptions;
  4. use ThurData\Servers\KerioEmail\App\Services\ConfigurableOptions\Helper\TypeConstans;
  5. use ThurData\Servers\KerioEmail\App\Services\ConfigurableOptions\Models\Option;
  6. use ThurData\Servers\KerioEmail\App\Services\ConfigurableOptions\Models\SubOption;
  7. use ThurData\Servers\KerioEmail\App\Services\ConfigurableOptions\Strategy\Types\AbstractOptions;
  8. /**
  9. * Description of Config
  10. *
  11. * @autor ThurData <info@thurdata.ch>
  12. */
  13. class ConfigurableOptionsBuilder
  14. {
  15. /**
  16. * @param ConfigurableOptions $configurableOptions
  17. * @param array $fieldsStatus
  18. * @return ConfigurableOptions
  19. */
  20. public static function build(ConfigurableOptions $configurableOptions, $fieldsStatus = [],AbstractOptions $options)
  21. {
  22. $allOptions = $options->getOptions();
  23. foreach ($fieldsStatus as $key => $field)
  24. {
  25. if ($field == "on")
  26. {
  27. $configurableOptions->addOption($allOptions[$key]);
  28. }
  29. }
  30. return $configurableOptions;
  31. }
  32. /**
  33. * @param ConfigurableOptions $configurableOptions
  34. * @return ConfigurableOptions
  35. */
  36. public static function buildAll(ConfigurableOptions $configurableOptions,AbstractOptions $options)
  37. {
  38. foreach($options->getOptions() as $option)
  39. {
  40. /* @var $option Option*/
  41. $configurableOptions->addOption($option);
  42. }
  43. return $configurableOptions;
  44. }
  45. /**
  46. * @param $string
  47. * @param string $delimiter
  48. * @param string $addPrefix
  49. * @return string
  50. */
  51. private static function convertToCamelCase($string, $delimiter = "_", $addPrefix = ""){
  52. $explodeString = explode($delimiter, $string);
  53. $newString = "";
  54. foreach($explodeString as $value){
  55. if(empty($newString) && $addPrefix != ""){
  56. $newString = lcfirst($addPrefix);
  57. }elseif(empty($newString) && $addPrefix == ""){
  58. $newString = lcfirst($value);
  59. continue;
  60. }
  61. $newString .= ucfirst(($value));
  62. }
  63. return $newString;
  64. }
  65. }