• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / wordpress-seo / 6987097851

25 Nov 2023 04:49AM UTC coverage: 49.206% (-0.1%) from 49.302%
6987097851

push

github

web-flow
Merge pull request #20878 from Yoast/JRF/ghactions-minor-tweak

GH Actions: update a few links in inline comments

15305 of 31104 relevant lines covered (49.21%)

4.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

68.75
/src/services/indexables/indexable-version-manager.php
1
<?php
2

3
namespace Yoast\WP\SEO\Services\Indexables;
4

5
use Yoast\WP\SEO\Models\Indexable;
6
use Yoast\WP\SEO\Values\Indexables\Indexable_Builder_Versions;
7

8
/**
9
 * Handles version control for Indexables.
10
 */
11
class Indexable_Version_Manager {
12

13
        /**
14
         * Stores the version of each Indexable type.
15
         *
16
         * @var Indexable_Builder_Versions The current versions of all indexable builders.
17
         */
18
        protected $indexable_builder_versions;
19

20
        /**
21
         * Indexable_Version_Manager constructor.
22
         *
23
         * @param Indexable_Builder_Versions $indexable_builder_versions The current versions of all indexable builders.
24
         */
25
        public function __construct( Indexable_Builder_Versions $indexable_builder_versions ) {
2✔
26
                $this->indexable_builder_versions = $indexable_builder_versions;
2✔
27
        }
1✔
28

29
        /**
30
         * Determines if an Indexable has a lower version than the builder for that Indexable's type.
31
         *
32
         * @param Indexable $indexable The Indexable to check.
33
         *
34
         * @return bool True if the given version is older than the current latest version.
35
         */
36
        public function indexable_needs_upgrade( $indexable ) {
26✔
37
                if ( ( ! $indexable )
26✔
38
                        || ( ! \is_a( $indexable, Indexable::class ) )
26✔
39
                ) {
40
                        return false;
18✔
41
                }
42

43
                return $this->needs_upgrade( $indexable->object_type, $indexable->version );
17✔
44
        }
45

46
        /**
47
         * Determines if an Indexable version for the type is lower than the current version for that Indexable type.
48
         *
49
         * @param string $object_type       The Indexable's object type.
50
         * @param int    $indexable_version The Indexable's version.
51
         *
52
         * @return bool True if the given version is older than the current latest version.
53
         */
54
        protected function needs_upgrade( $object_type, $indexable_version ) {
17✔
55
                $current_indexable_builder_version = $this->indexable_builder_versions->get_latest_version_for_type( $object_type );
17✔
56

57
                // If the Indexable's version is below the current version, that Indexable needs updating.
58
                return $indexable_version < $current_indexable_builder_version;
17✔
59
        }
60

61
        /**
62
         * Sets an Indexable's version to the latest version.
63
         *
64
         * @param Indexable $indexable The Indexable to update.
65
         *
66
         * @return Indexable
67
         */
68
        public function set_latest( $indexable ) {
×
69
                if ( ! $indexable ) {
×
70
                        return $indexable;
×
71
                }
72

73
                $indexable->version = $this->indexable_builder_versions->get_latest_version_for_type( $indexable->object_type );
×
74

75
                return $indexable;
×
76
        }
77
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc