diff --git a/src/applications/audit/config/PhabricatorAuditConfigOptions.php b/src/applications/audit/config/PhabricatorAuditConfigOptions.php index f2710f3e11..55afeb2ba6 100644 --- a/src/applications/audit/config/PhabricatorAuditConfigOptions.php +++ b/src/applications/audit/config/PhabricatorAuditConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorAuditConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorAuditApplication::class; + } + public function getOptions() { return array( $this->newOption( diff --git a/src/applications/config/option/PhabricatorApplicationConfigOptions.php b/src/applications/config/option/PhabricatorApplicationConfigOptions.php index 89e15fac54..8c421958e8 100644 --- a/src/applications/config/option/PhabricatorApplicationConfigOptions.php +++ b/src/applications/config/option/PhabricatorApplicationConfigOptions.php @@ -14,6 +14,17 @@ abstract class PhabricatorApplicationConfigOptions extends Phobject { return 'fa-sliders'; } + /** + * Get corresponding application class for configuration options. Child + * classes returning a classname should also have getGroup() return 'apps'. + * + * @return class-string|null Application class name, or null if the config + * options are not related to a specific application. + */ + public function getApplicationClassName() { + return null; + } + public function validateOption(PhabricatorConfigOption $option, $value) { if ($value === $option->getDefault()) { return; diff --git a/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php b/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php index 8c33bd5fad..dc317b1ae1 100644 --- a/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php +++ b/src/applications/differential/config/PhabricatorDifferentialConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorDifferentialConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorDifferentialApplication::class; + } + public function getOptions() { $caches_href = PhabricatorEnv::getDoclink('Managing Caches'); diff --git a/src/applications/diffusion/config/PhabricatorDiffusionConfigOptions.php b/src/applications/diffusion/config/PhabricatorDiffusionConfigOptions.php index d744b19b51..8e1a3f63f9 100644 --- a/src/applications/diffusion/config/PhabricatorDiffusionConfigOptions.php +++ b/src/applications/diffusion/config/PhabricatorDiffusionConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorDiffusionConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorDiffusionApplication::class; + } + public function getOptions() { $custom_field_type = 'custom:PhabricatorCustomFieldConfigOptionType'; diff --git a/src/applications/feed/config/PhabricatorFeedConfigOptions.php b/src/applications/feed/config/PhabricatorFeedConfigOptions.php index eac6a097ae..4fd6e36d7f 100644 --- a/src/applications/feed/config/PhabricatorFeedConfigOptions.php +++ b/src/applications/feed/config/PhabricatorFeedConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorFeedConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorFeedApplication::class; + } + public function getOptions() { $hooks_help = $this->deformat(pht(<< 'image/jpeg', diff --git a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php index 4e00ac0eda..8ed688ab43 100644 --- a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php +++ b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorManiphestConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorManiphestApplication::class; + } + public function getOptions() { $priority_type = 'maniphest.priorities'; $priority_defaults = array( diff --git a/src/applications/owners/config/PhabricatorOwnersConfigOptions.php b/src/applications/owners/config/PhabricatorOwnersConfigOptions.php index 330d465f3c..5fcbe3e2c2 100644 --- a/src/applications/owners/config/PhabricatorOwnersConfigOptions.php +++ b/src/applications/owners/config/PhabricatorOwnersConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorOwnersConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorOwnersApplication::class; + } + public function getOptions() { $custom_field_type = 'custom:PhabricatorCustomFieldConfigOptionType'; $default_fields = array(); diff --git a/src/applications/people/config/PhabricatorUserConfigOptions.php b/src/applications/people/config/PhabricatorUserConfigOptions.php index 66b85a6507..d8bd8da1ee 100644 --- a/src/applications/people/config/PhabricatorUserConfigOptions.php +++ b/src/applications/people/config/PhabricatorUserConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorUserConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorPeopleApplication::class; + } + public function getOptions() { $default = array( diff --git a/src/applications/phurl/config/PhabricatorPhurlConfigOptions.php b/src/applications/phurl/config/PhabricatorPhurlConfigOptions.php index 69e3dd6769..3d31c22078 100644 --- a/src/applications/phurl/config/PhabricatorPhurlConfigOptions.php +++ b/src/applications/phurl/config/PhabricatorPhurlConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorPhurlConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorPhurlApplication::class; + } + public function getOptions() { return array( $this->newOption('phurl.short-uri', 'string', null) diff --git a/src/applications/project/config/PhabricatorProjectConfigOptions.php b/src/applications/project/config/PhabricatorProjectConfigOptions.php index 4767a4dccc..7ad7cbb212 100644 --- a/src/applications/project/config/PhabricatorProjectConfigOptions.php +++ b/src/applications/project/config/PhabricatorProjectConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorProjectConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorProjectApplication::class; + } + public function getOptions() { $default_icons = PhabricatorProjectIconSet::getDefaultConfiguration(); $icons_type = 'project.icons'; diff --git a/src/applications/repository/config/PhabricatorRepositoryConfigOptions.php b/src/applications/repository/config/PhabricatorRepositoryConfigOptions.php index f01515501a..bed3097e2c 100644 --- a/src/applications/repository/config/PhabricatorRepositoryConfigOptions.php +++ b/src/applications/repository/config/PhabricatorRepositoryConfigOptions.php @@ -19,6 +19,10 @@ final class PhabricatorRepositoryConfigOptions return 'apps'; } + public function getApplicationClassName() { + return PhabricatorDiffusionApplication::class; + } + public function getOptions() { return array( $this->newOption('repository.default-local-path', 'string', '/var/repo/')