Changeset 3163099
- Timestamp:
- 10/05/2024 09:43:27 AM (18 months ago)
- Location:
- clonable
- Files:
-
- 116 added
- 11 edited
-
tags/2.2.5 (added)
-
tags/2.2.5/Bootstrap.php (added)
-
tags/2.2.5/clonable-wp.php (added)
-
tags/2.2.5/controllers (added)
-
tags/2.2.5/controllers/Controller.php (added)
-
tags/2.2.5/controllers/DashboardController.php (added)
-
tags/2.2.5/controllers/LandingPageController.php (added)
-
tags/2.2.5/controllers/LanguageSwitcherController.php (added)
-
tags/2.2.5/controllers/LanguageTagController.php (added)
-
tags/2.2.5/controllers/SettingController.php (added)
-
tags/2.2.5/controllers/WoocommerceController.php (added)
-
tags/2.2.5/controllers/index.php (added)
-
tags/2.2.5/helpers (added)
-
tags/2.2.5/helpers/Functions.php (added)
-
tags/2.2.5/helpers/Html.php (added)
-
tags/2.2.5/helpers/Json.php (added)
-
tags/2.2.5/helpers/Locales.php (added)
-
tags/2.2.5/helpers/Session.php (added)
-
tags/2.2.5/helpers/clonable-locales-list.php (added)
-
tags/2.2.5/helpers/index.php (added)
-
tags/2.2.5/images (added)
-
tags/2.2.5/images/clonable-full-logo.png (added)
-
tags/2.2.5/images/clonable.png (added)
-
tags/2.2.5/images/configure-wordpress-thumbnail.png (added)
-
tags/2.2.5/images/flags.png (added)
-
tags/2.2.5/images/index.php (added)
-
tags/2.2.5/images/language-switcher-thumbnail.png (added)
-
tags/2.2.5/index.php (added)
-
tags/2.2.5/middleware (added)
-
tags/2.2.5/middleware/Auth.php (added)
-
tags/2.2.5/middleware/ClonedSite.php (added)
-
tags/2.2.5/middleware/MiddlewareHandler.php (added)
-
tags/2.2.5/middleware/MiddlewareInterface.php (added)
-
tags/2.2.5/middleware/WooCommerce.php (added)
-
tags/2.2.5/middleware/index.php (added)
-
tags/2.2.5/models (added)
-
tags/2.2.5/models/ApiKey.php (added)
-
tags/2.2.5/models/ClonableWooCommerce.php (added)
-
tags/2.2.5/models/ClonedSite.php (added)
-
tags/2.2.5/models/LanguageSwitcher.php (added)
-
tags/2.2.5/models/LanguageTag.php (added)
-
tags/2.2.5/models/Settings.php (added)
-
tags/2.2.5/models/Site.php (added)
-
tags/2.2.5/models/index.php (added)
-
tags/2.2.5/objects (added)
-
tags/2.2.5/objects/ApiResponse.php (added)
-
tags/2.2.5/objects/CircuitBreaker.php (added)
-
tags/2.2.5/objects/ClonableConfig.php (added)
-
tags/2.2.5/objects/ClonableResponse.php (added)
-
tags/2.2.5/objects/CurlBuilder.php (added)
-
tags/2.2.5/objects/ExcludedProductTerm.php (added)
-
tags/2.2.5/objects/Notification.php (added)
-
tags/2.2.5/objects/index.php (added)
-
tags/2.2.5/readme-da_DK.txt (added)
-
tags/2.2.5/readme-de_DE.txt (added)
-
tags/2.2.5/readme-es_ES.txt (added)
-
tags/2.2.5/readme-fr_FR.txt (added)
-
tags/2.2.5/readme-it_IT.txt (added)
-
tags/2.2.5/readme-nb_NO.txt (added)
-
tags/2.2.5/readme-nl_NL.txt (added)
-
tags/2.2.5/readme-sv_SE.txt (added)
-
tags/2.2.5/readme.txt (added)
-
tags/2.2.5/routes (added)
-
tags/2.2.5/routes/Router.php (added)
-
tags/2.2.5/routes/index.php (added)
-
tags/2.2.5/services (added)
-
tags/2.2.5/services/AllowedHostsService.php (added)
-
tags/2.2.5/services/ApiService.php (added)
-
tags/2.2.5/services/ClonableWooCommerceService.php (added)
-
tags/2.2.5/services/LanguageSwitcherService.php (added)
-
tags/2.2.5/services/LanguageTagService.php (added)
-
tags/2.2.5/services/LocaleService.php (added)
-
tags/2.2.5/services/ShortCodeService.php (added)
-
tags/2.2.5/services/SubfolderService.php (added)
-
tags/2.2.5/services/SyncService.php (added)
-
tags/2.2.5/services/index.php (added)
-
tags/2.2.5/services/modules (added)
-
tags/2.2.5/services/modules/DataPanelModule.php (added)
-
tags/2.2.5/services/modules/ExclusionModule.php (added)
-
tags/2.2.5/services/modules/ProductImporterModule.php (added)
-
tags/2.2.5/services/modules/TaxonomyModule.php (added)
-
tags/2.2.5/services/modules/index.php (added)
-
tags/2.2.5/traits (added)
-
tags/2.2.5/traits/Forms.php (added)
-
tags/2.2.5/traits/Validation.php (added)
-
tags/2.2.5/traits/WooCommerceCheck.php (added)
-
tags/2.2.5/traits/index.php (added)
-
tags/2.2.5/uninstall.php (added)
-
tags/2.2.5/views (added)
-
tags/2.2.5/views/DashboardView.php (added)
-
tags/2.2.5/views/LanguageSwitcherView.php (added)
-
tags/2.2.5/views/LanguageTagView.php (added)
-
tags/2.2.5/views/Layout.php (added)
-
tags/2.2.5/views/OnboardingView.php (added)
-
tags/2.2.5/views/SettingsView.php (added)
-
tags/2.2.5/views/ViewInterface.php (added)
-
tags/2.2.5/views/WoocommerceView.php (added)
-
tags/2.2.5/views/css (added)
-
tags/2.2.5/views/css/clonable-extra-button.css (added)
-
tags/2.2.5/views/css/clonable-global.css (added)
-
tags/2.2.5/views/css/clonable-thumbnails.css (added)
-
tags/2.2.5/views/css/clonable-woocommerce.css (added)
-
tags/2.2.5/views/css/clonable.css (added)
-
tags/2.2.5/views/css/fomantic-dropdown.css (added)
-
tags/2.2.5/views/css/fomantic-transition.css (added)
-
tags/2.2.5/views/css/freakflags.css (added)
-
tags/2.2.5/views/css/index.php (added)
-
tags/2.2.5/views/index.php (added)
-
tags/2.2.5/views/scripts (added)
-
tags/2.2.5/views/scripts/alpine.js (added)
-
tags/2.2.5/views/scripts/dohjs.js (added)
-
tags/2.2.5/views/scripts/fomantic-dropdown.js (added)
-
tags/2.2.5/views/scripts/fomantic-transition.js (added)
-
tags/2.2.5/views/scripts/index.php (added)
-
tags/2.2.5/views/scripts/onload.js (added)
-
tags/2.2.5/views/scripts/woocommerce-clone-field.js (added)
-
trunk/clonable-wp.php (modified) (2 diffs)
-
trunk/objects/CircuitBreaker.php (modified) (4 diffs)
-
trunk/readme-da_DK.txt (modified) (2 diffs)
-
trunk/readme-de_DE.txt (modified) (2 diffs)
-
trunk/readme-es_ES.txt (modified) (2 diffs)
-
trunk/readme-fr_FR.txt (modified) (2 diffs)
-
trunk/readme-it_IT.txt (modified) (2 diffs)
-
trunk/readme-nb_NO.txt (modified) (2 diffs)
-
trunk/readme-nl_NL.txt (modified) (2 diffs)
-
trunk/readme-sv_SE.txt (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
clonable/trunk/clonable-wp.php
r3154512 r3163099 5 5 Description: Official plugin for improving your clones made with Clonable. 6 6 Plugin URI: https://kb.clonable.net/en/introduction/getting-started/wordpress#de-clonable-plug-in-downloaden 7 Version: 2.2. 47 Version: 2.2.5 8 8 Author: Clonable BV 9 9 Author URI: https://www.clonable.net … … 104 104 105 105 define('CLONABLE_NAME', 'Clonable'); 106 define('CLONABLE_VERSION', '2.2. 4');106 define('CLONABLE_VERSION', '2.2.5'); 107 107 108 108 try { -
clonable/trunk/objects/CircuitBreaker.php
r3125005 r3163099 3 3 namespace Clonable\Objects; 4 4 5 class CircuitBreaker 6 { 7 private const TIME_WINDOW = 60; 5 class CircuitBreaker { 6 private const HALF_OPEN_TIMEOUT = 60; 8 7 private const FAILURE_RATE_THRESHOLD = 5; 9 private const SUCCESS_RATE_THRESHOLD = 5; 8 private const SUCCESS_RATE_THRESHOLD = 3; 9 10 private const STATE_OPEN = 0; 11 private const STATE_CLOSED = 1; 12 private const STATE_HALF_OPEN = 2; 13 14 private const OPTION_SUCCESS_COUNT = 'clonable-circuit-breaker-success-count'; 15 private const OPTION_FAILURE_COUNT = 'clonable-circuit-breaker-failure-count'; 16 private const OPTION_OPENED_AT = 'clonable-circuit-breaker-closed-at'; 10 17 11 18 private $success_count = 0; 12 19 private $fail_count = 0; 13 20 14 public function __construct() 15 { 16 $this->success_count = get_option("clonable-circuit-breaker-success-count", 0); 17 $this->fail_count = get_option("clonable-circuit-breaker-fail-count", 0); 21 public function __construct() { 22 $this->success_count = intval(get_option(self::OPTION_SUCCESS_COUNT, 0)); 23 $this->fail_count = intval(get_option(self::OPTION_FAILURE_COUNT, 0)); 18 24 } 19 25 … … 22 28 * @return bool 23 29 */ 24 public function isOpen() 25 { 26 return get_transient("clonable-circuit-breaker-open") !== false; 30 public function isOpen() { 31 return $this->getState() == self::STATE_OPEN; 32 } 33 34 private function getState(): int { 35 $opened_at = intval(get_option(self::OPTION_OPENED_AT, 0)); 36 37 if ($opened_at == 0) { 38 return self::STATE_CLOSED; 39 } else if ($opened_at > (time() - self::HALF_OPEN_TIMEOUT)) { 40 return self::STATE_OPEN; 41 } else { 42 return self::STATE_HALF_OPEN; 43 } 27 44 } 28 45 … … 34 51 * @return void 35 52 */ 36 public function handle($is_successful) 37 { 38 if ($this->isOpen()) { 39 return; // if the circuit breaker is open, do not handle. 40 } 53 public function handle($is_successful) { 54 $state = $this->getState(); 41 55 42 56 if ($is_successful) { 43 update_option('clonable-circuit-breaker-success-count', ++$this->success_count); 57 // Reset failure count 58 $this->fail_count = 0; 59 update_option(self::OPTION_FAILURE_COUNT, $this->fail_count, true); 60 61 62 if ($state == self::STATE_HALF_OPEN) { 63 $this->success_count++; 64 update_option(self::OPTION_SUCCESS_COUNT, $this->success_count, true); 65 66 // Transition from half open to closed. 67 if ($this->success_count >= self::SUCCESS_RATE_THRESHOLD) { 68 update_option(self::OPTION_OPENED_AT, 0, true); 69 } 70 } 44 71 } else { 45 update_option('clonable-circuit-breaker-fail-count', ++$this->fail_count); 46 } 72 // Reset success count 73 $this->success_count = 0; 74 update_option(self::OPTION_SUCCESS_COUNT, $this->success_count, true); 47 75 48 if ($this->fail_count >= self::FAILURE_RATE_THRESHOLD) { 49 if (!$is_successful) { 50 update_option('clonable-circuit-breaker-success-count', 0); 51 set_transient('clonable-circuit-breaker-open', true, self::TIME_WINDOW); 52 } elseif ($this->success_count >= self::SUCCESS_RATE_THRESHOLD) { 53 update_option('clonable-circuit-breaker-fail-count', 0); 54 delete_transient("clonable-circuit-breaker-open"); 76 77 if ($state == self::STATE_CLOSED || $state == self::STATE_HALF_OPEN) { 78 $this->fail_count++; 79 update_option(self::OPTION_FAILURE_COUNT, $this->fail_count, true); 80 81 // Transition to open 82 if ($this->fail_count >= self::FAILURE_RATE_THRESHOLD) { 83 update_option(self::OPTION_OPENED_AT, time(), true); 84 } 55 85 } 56 86 } … … 61 91 * @return void 62 92 */ 63 public function debug() 64 { 93 public function debug() { 65 94 echo "<p style='max-width: 50vw'>The circuit breaker is implemented as a performance measure for the subfolder 66 95 communication between your site and Clonable. The circuit breaker checks for consecutive errors, if more than five -
clonable/trunk/readme-da_DK.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Retter fejl med forkert gemmeplacering i sprogkoder. -
clonable/trunk/readme-de_DE.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Fehler mit falschem Speicherort in Sprach-Tags behoben. -
clonable/trunk/readme-es_ES.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Corregido error con la ubicación de guardado incorrecta en las etiquetas de idioma. -
clonable/trunk/readme-fr_FR.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Correction d'un bug avec un emplacement d'enregistrement incorrect dans les balises de langue. -
clonable/trunk/readme-it_IT.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Correzione del bug relativo alla posizione di salvataggio errata nei tag della lingua. -
clonable/trunk/readme-nb_NO.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Fikser feil lagringsplassering i språkkoder. -
clonable/trunk/readme-nl_NL.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Bug met onjuiste opslaglocatie in taaltags opgelost. -
clonable/trunk/readme-sv_SE.txt
r3154512 r3163099 5 5 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Åtgärdat fel med felaktig lagringsplats i språktaggar. -
clonable/trunk/readme.txt
r3154512 r3163099 5 5 Tested up to: 6.6.2 6 6 Requires PHP: 7.2 7 Stable tag: 2.2. 47 Stable tag: 2.2.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.2.5 35 Improve circuit breaker logic 36 34 37 v2.2.4 35 38 Fix bug with incorrect saving location in language tags.
Note: See TracChangeset
for help on using the changeset viewer.