From: Roland Haeder Date: Sun, 26 Feb 2017 14:05:28 +0000 (+0100) Subject: Continued with tests and renaming: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ab1a6c5d8aeb77b01ce96672accb16e2f7deeb54;p=core.git Continued with tests and renaming: - filters are also classes, so keep '_class' suffix for later (upcoming) tests on it - added base filter which currently does nothing special but later will - added filter for pre-checking PHP requirements (some may come, such as PHPUnit and more) Signed-off-by: Roland Häder --- diff --git a/application/tests/classes/commands/console/class_TestsConsoleMainCommand.php b/application/tests/classes/commands/console/class_TestsConsoleMainCommand.php index 5603caf3..d6a5f389 100644 --- a/application/tests/classes/commands/console/class_TestsConsoleMainCommand.php +++ b/application/tests/classes/commands/console/class_TestsConsoleMainCommand.php @@ -88,11 +88,11 @@ class TestsConsoleMainCommand extends BaseCommand implements Commandable { * @return void */ public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { - // @TODO Unfinished - return; + // Add pre filters (e.g. for requirements checks) + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('tests_php_requirements_filter_class')); - // Add pre filters - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('tests_php_requirements_filter')); + // Add 'tests' filters which will run the actual tests + $controllerInstance->addTestsFilter(ObjectFactory::createObjectByConfiguredName('tests_configuration_classes_loadable_test_filter_class')); } } diff --git a/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php b/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php index 9583e124..cc86661b 100644 --- a/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php +++ b/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php @@ -44,11 +44,7 @@ class TestsConsoleDefaultNewsController extends BaseController implements Contro parent::__construct(__CLASS__); // Init additional filter chains - /* - * @TODO maybe later more: - 'bootstrap', 'activation', - */ - foreach (array('shutdown') as $filterChain) { + foreach (array('bootstrap', 'tests', 'shutdown') as $filterChain) { $this->initFilterChain($filterChain); } // END - foreach } @@ -67,8 +63,8 @@ class TestsConsoleDefaultNewsController extends BaseController implements Contro $controllerInstance->setResolverInstance($resolverInstance); // Add news filters to this controller - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter_class')); // Return the prepared instance return $controllerInstance; @@ -115,35 +111,35 @@ class TestsConsoleDefaultNewsController extends BaseController implements Contro } /** - * Executes all bootstrap filters + * Add a tests filter * - * @param $requestInstance A Requestable class - * @param $responseInstance A Responseable class + * @param $filterInstance A Filterable class * @return void */ - public function executeBootstrapFilters (Requestable $requestInstance, Responseable $responseInstance) { - $this->executeFilters('bootstrap', $requestInstance, $responseInstance); + public function addTestsFilter (Filterable $filterInstance) { + $this->addFilter('tests', $filterInstance); } /** - * Add a hub activation filter + * Executes all bootstrap filters * - * @param $filterInstance A Filterable class + * @param $requestInstance A Requestable class + * @param $responseInstance A Responseable class * @return void */ - public function addActivationFilter (Filterable $filterInstance) { - $this->addFilter('activation', $filterInstance); + public function executeBootstrapFilters (Requestable $requestInstance, Responseable $responseInstance) { + $this->executeFilters('bootstrap', $requestInstance, $responseInstance); } /** - * Executes all hub activation filters + * Executes all tests filters * * @param $requestInstance A Requestable class * @param $responseInstance A Responseable class * @return void */ - public function executeActivationFilters (Requestable $requestInstance, Responseable $responseInstance) { - $this->executeFilters('activation', $requestInstance, $responseInstance); + public function executeTestsFilters (Requestable $requestInstance, Responseable $responseInstance) { + $this->executeFilters('tests', $requestInstance, $responseInstance); } } diff --git a/application/tests/classes/filter/.htaccess b/application/tests/classes/filter/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/application/tests/classes/filter/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/tests/classes/filter/class_BaseTestsFilter.php b/application/tests/classes/filter/class_BaseTestsFilter.php new file mode 100644 index 00000000..04a141f2 --- /dev/null +++ b/application/tests/classes/filter/class_BaseTestsFilter.php @@ -0,0 +1,42 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class BaseTestsFilter extends BaseFilter { + /** + * Protected constructor + * + * @param $className Real name of class + * @return void + */ + protected function __construct ($className) { + // Call parent constructor + parent::__construct($className); + } + +} diff --git a/application/tests/classes/filter/tests/.htaccess b/application/tests/classes/filter/tests/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/application/tests/classes/filter/tests/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/tests/classes/filter/tests/class_Tests b/application/tests/classes/filter/tests/class_Tests new file mode 100644 index 00000000..9fa7bd8c --- /dev/null +++ b/application/tests/classes/filter/tests/class_Tests @@ -0,0 +1,69 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class Tests???Filter extends BaseTestsFilter implements Filterable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this filter class + * + * @return $filterInstance An instance of this filter class + */ + public final static function createTests???Filter () { + // Get a new instance + $filterInstance = new Tests???Filter(); + + // Return the instance + return $filterInstance; + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Implement this! + $this->partialStub('Please implement this method.'); + } + +} diff --git a/application/tests/classes/filter/tests/requirements/.htaccess b/application/tests/classes/filter/tests/requirements/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/application/tests/classes/filter/tests/requirements/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/tests/classes/filter/tests/requirements/class_TestsPhpRequirementsFilter.php b/application/tests/classes/filter/tests/requirements/class_TestsPhpRequirementsFilter.php new file mode 100644 index 00000000..969d9cf7 --- /dev/null +++ b/application/tests/classes/filter/tests/requirements/class_TestsPhpRequirementsFilter.php @@ -0,0 +1,70 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class TestsPhpRequirementsFilter extends BaseTestsFilter implements Filterable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this filter class + * + * @return $filterInstance An instance of this filter class + */ + public final static function createTestsPhpRequirementsFilter () { + // Get a new instance + $filterInstance = new TestsPhpRequirementsFilter(); + + // Return the instance + return $filterInstance; + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Implement this! + $this->partialStub('Please implement this method.'); + } + +} diff --git a/application/tests/config.php b/application/tests/config.php index dbe5aa71..05b6268a 100644 --- a/application/tests/config.php +++ b/application/tests/config.php @@ -40,13 +40,16 @@ $cfg->setConfigEntry('default_tests_console_controller', 'main'); $cfg->setConfigEntry('tests_console_cmd_main_resolver_class', 'CoreFramework\Tests\Resolver\Command\TestsConsoleCommandResolver'); // CFG: NEWS-DOWNLOAD-FILTER -$cfg->setConfigEntry('news_download_filter', 'CoreFramework\Filter\News\NewsDownloadFilter'); +$cfg->setConfigEntry('news_download_filter_class', 'CoreFramework\Filter\News\NewsDownloadFilter'); // CFG: NEWS-PROCESS-FILTER -$cfg->setConfigEntry('news_process_filter', 'CoreFramework\Filter\News\NewsProcessFilter'); +$cfg->setConfigEntry('news_process_filter_class', 'CoreFramework\Filter\News\NewsProcessFilter'); // CFG: NEWS-READER-MAIN-CLASS $cfg->setConfigEntry('news_reader_main_class', 'CoreFramework\Reader\News\Console\ConsoleNewsReader'); // CFG: NEWS-MAIN-LIMIT $cfg->setConfigEntry('news_main_limit', 5); + +// CFG: TESTS-PHP-REQUIREMENTS-FILTER +$cfg->setConfigEntry('tests_php_requirements_filter_class', 'CoreFramework\Tests\Filter\Requirements\TestsPhpRequirementsFilter'); diff --git a/framework/config.php b/framework/config.php index 8dd11f54..f524cbfc 100644 --- a/framework/config.php +++ b/framework/config.php @@ -194,49 +194,49 @@ $cfg->setConfigEntry('file_input_class', 'CoreFramework\Stream\Filesystem\FileIo $cfg->setConfigEntry('file_output_class', 'CoreFramework\Stream\Filesystem\FileIoStream'); // CFG: EMAIL-VALIDATOR-FILTER -$cfg->setConfigEntry('email_validator_filter', 'EmailValidatorFilter'); +$cfg->setConfigEntry('email_validator_filter_class', 'EmailValidatorFilter'); // CFG: USERNAME-VALIDATOR-FILTER -$cfg->setConfigEntry('username_validator_filter', 'UserNameValidatorFilter'); +$cfg->setConfigEntry('username_validator_filter_class', 'UserNameValidatorFilter'); // CFG: USERNAME-IS-GUEST-FILTER -$cfg->setConfigEntry('username_is_guest_filter', 'UserNameIsGuestFilter'); +$cfg->setConfigEntry('username_is_guest_filter_class', 'UserNameIsGuestFilter'); // CFG: PASSWORD-VALIDATOR-FILTER -$cfg->setConfigEntry('password_validator_filter', 'PasswordValidatorFilter'); +$cfg->setConfigEntry('password_validator_filter_class', 'PasswordValidatorFilter'); // CFG: RULES-ACCEPTED-FILTER -$cfg->setConfigEntry('rules_accepted_filter', 'RulesAcceptedFilter'); +$cfg->setConfigEntry('rules_accepted_filter_class', 'RulesAcceptedFilter'); // CFG: USERNAME-VERIFIER-FILTER -$cfg->setConfigEntry('username_verifier_filter', 'UserNameVerifierFilter'); +$cfg->setConfigEntry('username_verifier_filter_class', 'UserNameVerifierFilter'); // CFG: USER-GUEST-VERIFIER-FILTER -$cfg->setConfigEntry('user_guest_verifier_filter', 'UserGuestVerifierFilter'); +$cfg->setConfigEntry('user_guest_verifier_filter_class', 'UserGuestVerifierFilter'); // CFG: EMAIL-VERIFIER-FILTER -$cfg->setConfigEntry('email_verifier_filter', 'EmailVerifierFilter'); +$cfg->setConfigEntry('email_verifier_filter_class', 'EmailVerifierFilter'); // CFG: PASSWORD-VERIFIER-FILTER -$cfg->setConfigEntry('password_verifier_filter', 'PasswordVerifierFilter'); +$cfg->setConfigEntry('password_verifier_filter_class', 'PasswordVerifierFilter'); // CFG: PASSWD-GUEST-VERIFIER-FILTER -$cfg->setConfigEntry('passwd_guest_verifier_filter', 'PasswordGuestVerifierFilter'); +$cfg->setConfigEntry('passwd_guest_verifier_filter_class', 'PasswordGuestVerifierFilter'); // CFG: EMAIL-CHANGE-FILTER -$cfg->setConfigEntry('email_change_filter', 'EmailChangeFilter'); +$cfg->setConfigEntry('email_change_filter_class', 'EmailChangeFilter'); // CFG: PASSWORD-CHANGE-FILTER -$cfg->setConfigEntry('password_change_filter', 'PasswordChangeFilter'); +$cfg->setConfigEntry('password_change_filter_class', 'PasswordChangeFilter'); // CFG: ACCOUNT-PASSWORD-FILTER -$cfg->setConfigEntry('account_password_filter', 'AccountPasswordVerifierFilter'); +$cfg->setConfigEntry('account_password_filter_class', 'AccountPasswordVerifierFilter'); // CFG: USER-STATUS-FILTER -$cfg->setConfigEntry('user_status_filter', 'UserStatusVerifierFilter'); +$cfg->setConfigEntry('user_status_filter_class', 'UserStatusVerifierFilter'); // CFG: USER-UNCONFIRMED-FILTER -$cfg->setConfigEntry('user_unconfirmed_filter', 'UserUnconfirmedVerifierFilter'); +$cfg->setConfigEntry('user_unconfirmed_filter_class', 'UserUnconfirmedVerifierFilter'); // CFG: CRYPTO-CLASS $cfg->setConfigEntry('crypto_class', 'CryptoHelper'); diff --git a/framework/main/classes/actions/html/class_HtmlLoginProfileAction.php b/framework/main/classes/actions/html/class_HtmlLoginProfileAction.php index f1fafddd..2917f7f7 100644 --- a/framework/main/classes/actions/html/class_HtmlLoginProfileAction.php +++ b/framework/main/classes/actions/html/class_HtmlLoginProfileAction.php @@ -80,7 +80,7 @@ class HtmlLoginProfileAction extends BaseAction implements PerformableAction, Re */ public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { // Add user status filter here - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_filter_class')); } } diff --git a/framework/main/classes/commands/html/class_HtmlResendLinkCommand.php b/framework/main/classes/commands/html/class_HtmlResendLinkCommand.php index db74227a..cc520f6a 100644 --- a/framework/main/classes/commands/html/class_HtmlResendLinkCommand.php +++ b/framework/main/classes/commands/html/class_HtmlResendLinkCommand.php @@ -140,7 +140,7 @@ class HtmlResendLinkCommand extends BaseCommand implements Commandable { */ public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { // Filter for checking if account is unconfirmed - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_unconfirmed_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_unconfirmed_filter_class')); } } diff --git a/framework/main/classes/controller/console/class_ConsoleDefaultNewsController.php b/framework/main/classes/controller/console/class_ConsoleDefaultNewsController.php index c8655fd3..c754d58b 100644 --- a/framework/main/classes/controller/console/class_ConsoleDefaultNewsController.php +++ b/framework/main/classes/controller/console/class_ConsoleDefaultNewsController.php @@ -57,8 +57,8 @@ class ConsoleDefaultNewsController extends BaseController implements Controller $controllerInstance->setResolverInstance($resolverInstance); // Add news filters to this controller - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter_class')); // Return the prepared instance return $controllerInstance; diff --git a/framework/main/classes/controller/html/class_HtmlConfirmController.php b/framework/main/classes/controller/html/class_HtmlConfirmController.php index c332342e..48c2b71b 100644 --- a/framework/main/classes/controller/html/class_HtmlConfirmController.php +++ b/framework/main/classes/controller/html/class_HtmlConfirmController.php @@ -57,10 +57,10 @@ class HtmlConfirmController extends BaseController implements Controller { $controllerInstance->setResolverInstance($resolverInstance); // Add filters for handling confirmation code and username - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_verifier_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_unconfirmed_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('confirm_code_verifier_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_confirmed_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_verifier_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_unconfirmed_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('confirm_code_verifier_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_confirmed_filter_class')); // Return the prepared instance return $controllerInstance; diff --git a/framework/main/classes/controller/html/class_HtmlDefaultNewsController.php b/framework/main/classes/controller/html/class_HtmlDefaultNewsController.php index 2c8f854a..a0204ecb 100644 --- a/framework/main/classes/controller/html/class_HtmlDefaultNewsController.php +++ b/framework/main/classes/controller/html/class_HtmlDefaultNewsController.php @@ -56,8 +56,8 @@ class HtmlDefaultNewsController extends BaseController implements Controller { $controllerInstance->setResolverInstance($resolverInstance); // Add news filters to this controller - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter')); - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter_class')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter_class')); // Return the prepared instance return $controllerInstance; diff --git a/framework/main/classes/controller/html/class_HtmlLogoutController.php b/framework/main/classes/controller/html/class_HtmlLogoutController.php index ff14940e..c383686c 100644 --- a/framework/main/classes/controller/html/class_HtmlLogoutController.php +++ b/framework/main/classes/controller/html/class_HtmlLogoutController.php @@ -58,10 +58,10 @@ class HtmlLogoutController extends BaseController implements Controller { $controllerInstance->setResolverInstance($resolverInstance); // Add user auth filter (we don't need an update of the user here because it will be redirected) - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter_class')); // User status filter - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_status_filter_class')); // Return the prepared instance return $controllerInstance; diff --git a/framework/main/classes/controller/html/login/class_HtmlLoginAreaController.php b/framework/main/classes/controller/html/login/class_HtmlLoginAreaController.php index 62495503..18d7cf6b 100644 --- a/framework/main/classes/controller/html/login/class_HtmlLoginAreaController.php +++ b/framework/main/classes/controller/html/login/class_HtmlLoginAreaController.php @@ -58,16 +58,16 @@ class HtmlLoginAreaController extends BaseController implements Controller { $controllerInstance->setResolverInstance($resolverInstance); // User auth filter - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter_class')); // User update filter - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_update_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_update_filter_class')); // News fetcher filter - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter_class')); // News proccess/display-preparation - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter_class')); // Return the prepared instance return $controllerInstance; diff --git a/framework/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php b/framework/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php index bbd94fc1..612fb4a4 100644 --- a/framework/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php +++ b/framework/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php @@ -57,7 +57,7 @@ class ImageCodeCaptchaController extends BaseController implements Controller { $controllerInstance->setResolverInstance($resolverInstance); // Add filter for checking the "encrypt" string - $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('captcha_encrypt_validator_filter')); + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('captcha_encrypt_validator_filter_class')); // Return the prepared instance return $controllerInstance;