PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / abstracts / abstract-factory.php
advanced-ads / includes / abstracts Last commit date
abstract-ad.php 2 days ago abstract-admin-list-table.php 1 week ago abstract-data.php 1 week ago abstract-factory.php 2 days ago abstract-group.php 2 days ago abstract-placement-type.php 1 week ago abstract-placement.php 2 days ago abstract-screen.php 3 months ago abstract-types.php 2 days ago index.php 2 years ago
abstract-factory.php
105 lines
1 <?php
2 /**
3 * Abstracts Factory.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Abstracts;
11
12 defined( 'ABSPATH' ) || exit;
13
14 /**
15 * Abstracts Factory.
16 */
17 abstract class Factory {
18
19 /**
20 * Request-scoped cache of loaded entity instances keyed by entity ID and optional type override.
21 *
22 * @var array<string, object|false>
23 */
24 protected $instances = [];
25
26 /**
27 * Clear request-scoped entity instances (e.g. after CRUD writes).
28 *
29 * @return void
30 */
31 public function clear_instance_cache(): void {
32 $this->instances = [];
33 }
34
35 /**
36 * Build a cache key for a loaded entity instance.
37 *
38 * @param int $id Entity ID.
39 * @param string $new_type Optional type override passed to the factory getter.
40 *
41 * @return string
42 */
43 protected function get_instance_cache_key( int $id, string $new_type = '' ): string {
44 return '' !== $new_type ? $id . ':' . $new_type : (string) $id;
45 }
46
47 /**
48 * Whether a cached entity instance exists for the given ID and type override.
49 *
50 * @param int $id Entity ID.
51 * @param string $new_type Optional type override passed to the factory getter.
52 *
53 * @return bool
54 */
55 protected function has_cached_instance( int $id, string $new_type = '' ): bool {
56 return array_key_exists( $this->get_instance_cache_key( $id, $new_type ), $this->instances );
57 }
58
59 /**
60 * Get a cached entity instance for the given ID and type override.
61 *
62 * @param int $id Entity ID.
63 * @param string $new_type Optional type override passed to the factory getter.
64 *
65 * @return object|false
66 */
67 protected function get_cached_instance( int $id, string $new_type = '' ) {
68 return $this->instances[ $this->get_instance_cache_key( $id, $new_type ) ];
69 }
70
71 /**
72 * Store an entity instance in the request-scoped cache.
73 *
74 * @param int $id Entity ID.
75 * @param string $new_type Optional type override passed to the factory getter.
76 * @param object|false $instance Loaded entity instance.
77 *
78 * @return void
79 */
80 protected function store_cached_instance( int $id, string $new_type, $instance ): void {
81 $this->instances[ $this->get_instance_cache_key( $id, $new_type ) ] = $instance;
82 }
83
84 /**
85 * Create an empty entity from a registered type object.
86 *
87 * @param object|false $type_object Registered type object.
88 * @param int $id Entity ID.
89 *
90 * @return object|false
91 */
92 protected function create_empty_from_type( $type_object, int $id = 0 ) {
93 if ( ! $type_object ) {
94 return false;
95 }
96
97 $classname = $type_object->get_classname();
98 $entity = new $classname( $id );
99 $entity->set_type( $type_object->get_id() );
100
101 return $entity;
102 }
103
104 }
105