Test Failed
Branch phpcsfixes (83430a)
by Andreas
14:02
created
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Memcache/Config.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -23,119 +23,119 @@
 block discarded – undo
23 23
 
24 24
 class Config extends ConfigurationOption
25 25
 {
26
-    /**
27
-     * @var array
28
-     *
29
-     * Multiple server can be added this way:
30
-     *       $cfg->setServers([
31
-     *         [
32
-     *           // If you use an UNIX socket set the host and port to null
33
-     *           'host' => '127.0.0.1',
34
-     *           //'path' => 'path/to/unix/socket',
35
-     *           'port' => 11211,
36
-     *         ]
37
-     *      ]);
38
-     */
39
-
40
-    /** @var array<array<string, mixed>>  */
41
-    protected array $servers = [];
42
-    protected string $host = '127.0.0.1';
43
-    protected int $port = 11211;
44
-
45
-    /**
46
-     * @return array<array<string, mixed>>
47
-     */
48
-    public function getServers(): array
49
-    {
50
-        if (!count($this->servers)) {
51
-            return [
52
-                [
53
-                    'host' => $this->getHost(),
54
-                    'path' => $this->getPath(),
55
-                    'port' => $this->getPort(),
56
-                ],
57
-            ];
58
-        }
59
-
60
-        return $this->servers;
61
-    }
62
-
63
-    /**
64
-     * @param array<array<string, mixed>> $servers
65
-     * @return self
66
-     * @throws PhpfastcacheInvalidConfigurationException
67
-     * @throws PhpfastcacheLogicException
68
-     *
69
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
70
-     * @SuppressWarnings(PHPMD.NPathComplexity)
71
-     */
72
-    public function setServers(array $servers): static
73
-    {
74
-        foreach ($servers as $server) {
75
-            if (\array_key_exists('saslUser', $server) || array_key_exists('saslPassword', $server)) {
76
-                throw new PhpfastcacheInvalidConfigurationException('Unlike Memcached, Memcache does not support SASL authentication');
77
-            }
78
-
79
-            if ($diff = array_diff(array_keys($server), ['host', 'port', 'path'])) {
80
-                throw new PhpfastcacheInvalidConfigurationException('Unknown keys for memcached server: ' . implode(', ', $diff));
81
-            }
82
-
83
-            if (!empty($server['host']) && !empty($server['path'])) {
84
-                throw new PhpfastcacheInvalidConfigurationException('Host and path cannot be simultaneous defined.');
85
-            }
86
-
87
-            if ((isset($server['host']) && !is_string($server['host'])) || (empty($server['path']) && empty($server['host']))) {
88
-                throw new PhpfastcacheInvalidConfigurationException('Host must be a valid string in "$server" configuration array if path is not defined');
89
-            }
90
-
91
-            if ((isset($server['path']) && !is_string($server['path'])) || (empty($server['host']) && empty($server['path']))) {
92
-                throw new PhpfastcacheInvalidConfigurationException('Path must be a valid string in "$server" configuration array if host is not defined');
93
-            }
94
-
95
-            if (!empty($server['host']) && (empty($server['port']) || !is_int($server['port']) || $server['port'] < 1)) {
96
-                throw new PhpfastcacheInvalidConfigurationException('Port must be a valid integer in "$server" configuration array');
97
-            }
98
-
99
-            if (!empty($server['port']) && !empty($server['path'])) {
100
-                throw new PhpfastcacheInvalidConfigurationException('Port should not be defined along with path');
101
-            }
102
-        }
103
-        return $this->setProperty('servers', $servers);
104
-    }
105
-
106
-    /**
107
-     * @return string
108
-     */
109
-    public function getHost(): string
110
-    {
111
-        return $this->host;
112
-    }
113
-
114
-    /**
115
-     * @param string $host
116
-     * @return self
117
-     * @throws PhpfastcacheLogicException
118
-     */
119
-    public function setHost(string $host): static
120
-    {
121
-        return $this->setProperty('host', $host);
122
-    }
123
-
124
-    /**
125
-     * @return int
126
-     */
127
-    public function getPort(): int
128
-    {
129
-        return $this->port;
130
-    }
131
-
132
-    /**
133
-     * @param int $port
134
-     * @return self
135
-     * @throws PhpfastcacheLogicException
136
-     */
137
-    public function setPort(int $port): static
138
-    {
139
-        return $this->setProperty('port', $port);
140
-    }
26
+	/**
27
+	 * @var array
28
+	 *
29
+	 * Multiple server can be added this way:
30
+	 *       $cfg->setServers([
31
+	 *         [
32
+	 *           // If you use an UNIX socket set the host and port to null
33
+	 *           'host' => '127.0.0.1',
34
+	 *           //'path' => 'path/to/unix/socket',
35
+	 *           'port' => 11211,
36
+	 *         ]
37
+	 *      ]);
38
+	 */
39
+
40
+	/** @var array<array<string, mixed>>  */
41
+	protected array $servers = [];
42
+	protected string $host = '127.0.0.1';
43
+	protected int $port = 11211;
44
+
45
+	/**
46
+	 * @return array<array<string, mixed>>
47
+	 */
48
+	public function getServers(): array
49
+	{
50
+		if (!count($this->servers)) {
51
+			return [
52
+				[
53
+					'host' => $this->getHost(),
54
+					'path' => $this->getPath(),
55
+					'port' => $this->getPort(),
56
+				],
57
+			];
58
+		}
59
+
60
+		return $this->servers;
61
+	}
62
+
63
+	/**
64
+	 * @param array<array<string, mixed>> $servers
65
+	 * @return self
66
+	 * @throws PhpfastcacheInvalidConfigurationException
67
+	 * @throws PhpfastcacheLogicException
68
+	 *
69
+	 * @SuppressWarnings(PHPMD.CyclomaticComplexity)
70
+	 * @SuppressWarnings(PHPMD.NPathComplexity)
71
+	 */
72
+	public function setServers(array $servers): static
73
+	{
74
+		foreach ($servers as $server) {
75
+			if (\array_key_exists('saslUser', $server) || array_key_exists('saslPassword', $server)) {
76
+				throw new PhpfastcacheInvalidConfigurationException('Unlike Memcached, Memcache does not support SASL authentication');
77
+			}
78
+
79
+			if ($diff = array_diff(array_keys($server), ['host', 'port', 'path'])) {
80
+				throw new PhpfastcacheInvalidConfigurationException('Unknown keys for memcached server: ' . implode(', ', $diff));
81
+			}
82
+
83
+			if (!empty($server['host']) && !empty($server['path'])) {
84
+				throw new PhpfastcacheInvalidConfigurationException('Host and path cannot be simultaneous defined.');
85
+			}
86
+
87
+			if ((isset($server['host']) && !is_string($server['host'])) || (empty($server['path']) && empty($server['host']))) {
88
+				throw new PhpfastcacheInvalidConfigurationException('Host must be a valid string in "$server" configuration array if path is not defined');
89
+			}
90
+
91
+			if ((isset($server['path']) && !is_string($server['path'])) || (empty($server['host']) && empty($server['path']))) {
92
+				throw new PhpfastcacheInvalidConfigurationException('Path must be a valid string in "$server" configuration array if host is not defined');
93
+			}
94
+
95
+			if (!empty($server['host']) && (empty($server['port']) || !is_int($server['port']) || $server['port'] < 1)) {
96
+				throw new PhpfastcacheInvalidConfigurationException('Port must be a valid integer in "$server" configuration array');
97
+			}
98
+
99
+			if (!empty($server['port']) && !empty($server['path'])) {
100
+				throw new PhpfastcacheInvalidConfigurationException('Port should not be defined along with path');
101
+			}
102
+		}
103
+		return $this->setProperty('servers', $servers);
104
+	}
105
+
106
+	/**
107
+	 * @return string
108
+	 */
109
+	public function getHost(): string
110
+	{
111
+		return $this->host;
112
+	}
113
+
114
+	/**
115
+	 * @param string $host
116
+	 * @return self
117
+	 * @throws PhpfastcacheLogicException
118
+	 */
119
+	public function setHost(string $host): static
120
+	{
121
+		return $this->setProperty('host', $host);
122
+	}
123
+
124
+	/**
125
+	 * @return int
126
+	 */
127
+	public function getPort(): int
128
+	{
129
+		return $this->port;
130
+	}
131
+
132
+	/**
133
+	 * @param int $port
134
+	 * @return self
135
+	 * @throws PhpfastcacheLogicException
136
+	 */
137
+	public function setPort(int $port): static
138
+	{
139
+		return $this->setProperty('port', $port);
140
+	}
141 141
 }
Please login to merge, or discard this patch.
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Couchbasev3/Driver.php 1 patch
Indentation   +275 added lines, -275 removed lines patch added patch discarded remove patch
@@ -46,279 +46,279 @@
 block discarded – undo
46 46
  */
47 47
 class Driver implements AggregatablePoolInterface
48 48
 {
49
-    use TaggableCacheItemPoolTrait;
50
-
51
-    protected Scope $scope;
52
-
53
-    protected Collection $collection;
54
-
55
-    protected CouchbaseBucket $bucketInstance;
56
-
57
-    /**
58
-     * @return bool
59
-     */
60
-    public function driverCheck(): bool
61
-    {
62
-        return extension_loaded('couchbase');
63
-    }
64
-
65
-    /**
66
-     * @return bool
67
-     * @throws PhpfastcacheDriverCheckException
68
-     */
69
-    protected function driverConnect(): bool
70
-    {
71
-        if (!\class_exists(ClusterOptions::class)) {
72
-            throw new PhpfastcacheDriverCheckException('You are using the Couchbase PHP SDK 2.x which is no longer supported in Phpfastcache v9');
73
-        }
74
-
75
-        $connectionString = "couchbase://{$this->getConfig()->getHost()}:{$this->getConfig()->getPort()}";
76
-
77
-        $options = new ClusterOptions();
78
-        $options->credentials($this->getConfig()->getUsername(), $this->getConfig()->getPassword());
79
-        $this->instance = new Cluster($connectionString, $options);
80
-
81
-        $this->setBucket($this->instance->bucket($this->getConfig()->getBucketName()));
82
-        $this->setScope($this->getBucket()->scope($this->getConfig()->getScopeName()));
83
-        $this->setCollection($this->getScope()->collection($this->getConfig()->getCollectionName()));
84
-
85
-        return true;
86
-    }
87
-
88
-    /**
89
-     * @param ExtendedCacheItemInterface $item
90
-     * @return ?array<string, mixed>
91
-     */
92
-    protected function driverRead(ExtendedCacheItemInterface $item): ?array
93
-    {
94
-        try {
95
-            /**
96
-             * CouchbaseBucket::get() returns a GetResult interface
97
-             */
98
-            return $this->decodeDocument((array)$this->getCollection()->get($item->getEncodedKey())->content());
99
-        } catch (DocumentNotFoundException) {
100
-            return null;
101
-        }
102
-    }
103
-
104
-    /**
105
-     * @param ExtendedCacheItemInterface $item
106
-     * @return array<array<string, mixed>>
107
-     */
108
-    protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
109
-    {
110
-        try {
111
-            $results = [];
112
-            /**
113
-             * CouchbaseBucket::get() returns a GetResult interface
114
-             */
115
-            /** @var GetResult $document */
116
-            foreach ($this->getCollection()->getMulti($this->getKeys($items, true)) as $document) {
117
-                $content = $document->content();
118
-                if ($content) {
119
-                    $decodedDocument = $this->decodeDocument($content);
120
-                    $results[$decodedDocument[ExtendedCacheItemPoolInterface::DRIVER_KEY_WRAPPER_INDEX]] = $this->decodeDocument($content);
121
-                }
122
-            }
123
-
124
-            return $results;
125
-        } catch (DocumentNotFoundException) {
126
-            return [];
127
-        }
128
-    }
129
-
130
-    /**
131
-     * @param ExtendedCacheItemInterface $item
132
-     * @return bool
133
-     * @throws PhpfastcacheInvalidArgumentException
134
-     * @throws PhpfastcacheLogicException
135
-     */
136
-    protected function driverWrite(ExtendedCacheItemInterface $item): bool
137
-    {
138
-
139
-        try {
140
-            $this->getCollection()->upsert(
141
-                $item->getEncodedKey(),
142
-                $this->encodeDocument($this->driverPreWrap($item)),
143
-                (new UpsertOptions())->expiry($item->getTtl())
144
-            );
145
-            return true;
146
-        } catch (CouchbaseException) {
147
-            return false;
148
-        }
149
-    }
150
-
151
-    /**
152
-     * @param string $key
153
-     * @param string $encodedKey
154
-     * @return bool
155
-     */
156
-    protected function driverDelete(string $key, string $encodedKey): bool
157
-    {
158
-
159
-        try {
160
-            return $this->getCollection()->remove($encodedKey)->mutationToken() !== null;
161
-        } catch (DocumentNotFoundException) {
162
-            return true;
163
-        } catch (CouchbaseException) {
164
-            return false;
165
-        }
166
-    }
167
-
168
-
169
-    /**
170
-     * @param string[] $keys
171
-     * @return bool
172
-     */
173
-    protected function driverDeleteMultiple(array $keys): bool
174
-    {
175
-        try {
176
-            $this->getCollection()->removeMulti(array_map(fn(string $key) => $this->getEncodedKey($key), $keys));
177
-            return true;
178
-        } catch (CouchbaseException) {
179
-            return false;
180
-        }
181
-    }
182
-
183
-
184
-    /**
185
-     * @return bool
186
-     * @throws PhpfastcacheUnsupportedMethodException
187
-     */
188
-    protected function driverClear(): bool
189
-    {
190
-        if (!$this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->flushEnabled()) {
191
-            $this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->enableFlush(true);
192
-            /** @phpstan-ignore-next-line */
193
-            if (!$this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->flushEnabled()) {
194
-                throw new PhpfastcacheUnsupportedMethodException(
195
-                    'Flushing operation is not enabled on your Bucket. See https://docs.couchbase.com/server/current/manage/manage-buckets/flush-bucket.html'
196
-                );
197
-            }
198
-        }
199
-
200
-        $this->instance->buckets()->flush($this->getConfig()->getBucketName());
201
-
202
-        return true;
203
-    }
204
-
205
-    /**
206
-     * @return DriverStatistic
207
-     * @throws \Exception
208
-     */
209
-    public function getStats(): DriverStatistic
210
-    {
211
-        /**
212
-         * Between SDK 2 and 3 we lost a lot of useful information :(
213
-         * @see https://docs.couchbase.com/java-sdk/current/project-docs/migrating-sdk-code-to-3.n.html#management-apis
214
-         */
215
-        $info = $this->getBucket()->diagnostics(\bin2hex(\random_bytes(16)));
216
-
217
-        return (new DriverStatistic())
218
-            ->setSize(0)
219
-            ->setRawData($info)
220
-            ->setData(implode(', ', array_keys($this->itemInstances)))
221
-            ->setInfo($info['sdk'] . "\n For more information see RawData.");
222
-    }
223
-
224
-    /**
225
-     * @return Collection
226
-     */
227
-    public function getCollection(): Collection
228
-    {
229
-        return $this->collection;
230
-    }
231
-
232
-    /**
233
-     * @param Collection $collection
234
-     * @return Driver
235
-     */
236
-    public function setCollection(Collection $collection): Driver
237
-    {
238
-        $this->collection = $collection;
239
-        return $this;
240
-    }
241
-
242
-    /**
243
-     * @return Scope
244
-     */
245
-    public function getScope(): Scope
246
-    {
247
-        return $this->scope;
248
-    }
249
-
250
-    /**
251
-     * @param Scope $scope
252
-     * @return Driver
253
-     */
254
-    public function setScope(Scope $scope): Driver
255
-    {
256
-        $this->scope = $scope;
257
-        return $this;
258
-    }
259
-
260
-    /**
261
-     * @return CouchbaseBucket
262
-     */
263
-    protected function getBucket(): CouchbaseBucket
264
-    {
265
-        return $this->bucketInstance;
266
-    }
267
-
268
-    /**
269
-     * @param CouchbaseBucket $couchbaseBucket
270
-     */
271
-    protected function setBucket(CouchbaseBucket $couchbaseBucket): void
272
-    {
273
-        $this->bucketInstance = $couchbaseBucket;
274
-    }
275
-
276
-
277
-    /**
278
-     * @param array<string, mixed> $data
279
-     * @return array<string, mixed>
280
-     */
281
-    protected function encodeDocument(array $data): array
282
-    {
283
-        $data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX] = $this->encode($data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX]);
284
-        $data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX]
285
-            ->format(DateTimeInterface::ATOM);
286
-
287
-        if ($this->getConfig()->isItemDetailedDate()) {
288
-            $data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX]
289
-                ->format(\DateTimeInterface::ATOM);
290
-
291
-            $data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX]
292
-                ->format(\DateTimeInterface::ATOM);
293
-        }
294
-
295
-        return $data;
296
-    }
297
-
298
-    /**
299
-     * @param array<string, mixed> $data
300
-     * @return array<string, mixed>
301
-     */
302
-    protected function decodeDocument(array $data): array
303
-    {
304
-        $data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX] = $this->unserialize($data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX]);
305
-        $data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
306
-            \DateTimeInterface::ATOM,
307
-            $data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX]
308
-        );
309
-
310
-        if ($this->getConfig()->isItemDetailedDate()) {
311
-            $data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
312
-                \DateTimeInterface::ATOM,
313
-                $data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX]
314
-            );
315
-
316
-            $data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
317
-                \DateTimeInterface::ATOM,
318
-                $data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX]
319
-            );
320
-        }
321
-
322
-        return $data;
323
-    }
49
+	use TaggableCacheItemPoolTrait;
50
+
51
+	protected Scope $scope;
52
+
53
+	protected Collection $collection;
54
+
55
+	protected CouchbaseBucket $bucketInstance;
56
+
57
+	/**
58
+	 * @return bool
59
+	 */
60
+	public function driverCheck(): bool
61
+	{
62
+		return extension_loaded('couchbase');
63
+	}
64
+
65
+	/**
66
+	 * @return bool
67
+	 * @throws PhpfastcacheDriverCheckException
68
+	 */
69
+	protected function driverConnect(): bool
70
+	{
71
+		if (!\class_exists(ClusterOptions::class)) {
72
+			throw new PhpfastcacheDriverCheckException('You are using the Couchbase PHP SDK 2.x which is no longer supported in Phpfastcache v9');
73
+		}
74
+
75
+		$connectionString = "couchbase://{$this->getConfig()->getHost()}:{$this->getConfig()->getPort()}";
76
+
77
+		$options = new ClusterOptions();
78
+		$options->credentials($this->getConfig()->getUsername(), $this->getConfig()->getPassword());
79
+		$this->instance = new Cluster($connectionString, $options);
80
+
81
+		$this->setBucket($this->instance->bucket($this->getConfig()->getBucketName()));
82
+		$this->setScope($this->getBucket()->scope($this->getConfig()->getScopeName()));
83
+		$this->setCollection($this->getScope()->collection($this->getConfig()->getCollectionName()));
84
+
85
+		return true;
86
+	}
87
+
88
+	/**
89
+	 * @param ExtendedCacheItemInterface $item
90
+	 * @return ?array<string, mixed>
91
+	 */
92
+	protected function driverRead(ExtendedCacheItemInterface $item): ?array
93
+	{
94
+		try {
95
+			/**
96
+			 * CouchbaseBucket::get() returns a GetResult interface
97
+			 */
98
+			return $this->decodeDocument((array)$this->getCollection()->get($item->getEncodedKey())->content());
99
+		} catch (DocumentNotFoundException) {
100
+			return null;
101
+		}
102
+	}
103
+
104
+	/**
105
+	 * @param ExtendedCacheItemInterface $item
106
+	 * @return array<array<string, mixed>>
107
+	 */
108
+	protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
109
+	{
110
+		try {
111
+			$results = [];
112
+			/**
113
+			 * CouchbaseBucket::get() returns a GetResult interface
114
+			 */
115
+			/** @var GetResult $document */
116
+			foreach ($this->getCollection()->getMulti($this->getKeys($items, true)) as $document) {
117
+				$content = $document->content();
118
+				if ($content) {
119
+					$decodedDocument = $this->decodeDocument($content);
120
+					$results[$decodedDocument[ExtendedCacheItemPoolInterface::DRIVER_KEY_WRAPPER_INDEX]] = $this->decodeDocument($content);
121
+				}
122
+			}
123
+
124
+			return $results;
125
+		} catch (DocumentNotFoundException) {
126
+			return [];
127
+		}
128
+	}
129
+
130
+	/**
131
+	 * @param ExtendedCacheItemInterface $item
132
+	 * @return bool
133
+	 * @throws PhpfastcacheInvalidArgumentException
134
+	 * @throws PhpfastcacheLogicException
135
+	 */
136
+	protected function driverWrite(ExtendedCacheItemInterface $item): bool
137
+	{
138
+
139
+		try {
140
+			$this->getCollection()->upsert(
141
+				$item->getEncodedKey(),
142
+				$this->encodeDocument($this->driverPreWrap($item)),
143
+				(new UpsertOptions())->expiry($item->getTtl())
144
+			);
145
+			return true;
146
+		} catch (CouchbaseException) {
147
+			return false;
148
+		}
149
+	}
150
+
151
+	/**
152
+	 * @param string $key
153
+	 * @param string $encodedKey
154
+	 * @return bool
155
+	 */
156
+	protected function driverDelete(string $key, string $encodedKey): bool
157
+	{
158
+
159
+		try {
160
+			return $this->getCollection()->remove($encodedKey)->mutationToken() !== null;
161
+		} catch (DocumentNotFoundException) {
162
+			return true;
163
+		} catch (CouchbaseException) {
164
+			return false;
165
+		}
166
+	}
167
+
168
+
169
+	/**
170
+	 * @param string[] $keys
171
+	 * @return bool
172
+	 */
173
+	protected function driverDeleteMultiple(array $keys): bool
174
+	{
175
+		try {
176
+			$this->getCollection()->removeMulti(array_map(fn(string $key) => $this->getEncodedKey($key), $keys));
177
+			return true;
178
+		} catch (CouchbaseException) {
179
+			return false;
180
+		}
181
+	}
182
+
183
+
184
+	/**
185
+	 * @return bool
186
+	 * @throws PhpfastcacheUnsupportedMethodException
187
+	 */
188
+	protected function driverClear(): bool
189
+	{
190
+		if (!$this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->flushEnabled()) {
191
+			$this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->enableFlush(true);
192
+			/** @phpstan-ignore-next-line */
193
+			if (!$this->instance->buckets()->getBucket($this->getConfig()->getBucketName())->flushEnabled()) {
194
+				throw new PhpfastcacheUnsupportedMethodException(
195
+					'Flushing operation is not enabled on your Bucket. See https://docs.couchbase.com/server/current/manage/manage-buckets/flush-bucket.html'
196
+				);
197
+			}
198
+		}
199
+
200
+		$this->instance->buckets()->flush($this->getConfig()->getBucketName());
201
+
202
+		return true;
203
+	}
204
+
205
+	/**
206
+	 * @return DriverStatistic
207
+	 * @throws \Exception
208
+	 */
209
+	public function getStats(): DriverStatistic
210
+	{
211
+		/**
212
+		 * Between SDK 2 and 3 we lost a lot of useful information :(
213
+		 * @see https://docs.couchbase.com/java-sdk/current/project-docs/migrating-sdk-code-to-3.n.html#management-apis
214
+		 */
215
+		$info = $this->getBucket()->diagnostics(\bin2hex(\random_bytes(16)));
216
+
217
+		return (new DriverStatistic())
218
+			->setSize(0)
219
+			->setRawData($info)
220
+			->setData(implode(', ', array_keys($this->itemInstances)))
221
+			->setInfo($info['sdk'] . "\n For more information see RawData.");
222
+	}
223
+
224
+	/**
225
+	 * @return Collection
226
+	 */
227
+	public function getCollection(): Collection
228
+	{
229
+		return $this->collection;
230
+	}
231
+
232
+	/**
233
+	 * @param Collection $collection
234
+	 * @return Driver
235
+	 */
236
+	public function setCollection(Collection $collection): Driver
237
+	{
238
+		$this->collection = $collection;
239
+		return $this;
240
+	}
241
+
242
+	/**
243
+	 * @return Scope
244
+	 */
245
+	public function getScope(): Scope
246
+	{
247
+		return $this->scope;
248
+	}
249
+
250
+	/**
251
+	 * @param Scope $scope
252
+	 * @return Driver
253
+	 */
254
+	public function setScope(Scope $scope): Driver
255
+	{
256
+		$this->scope = $scope;
257
+		return $this;
258
+	}
259
+
260
+	/**
261
+	 * @return CouchbaseBucket
262
+	 */
263
+	protected function getBucket(): CouchbaseBucket
264
+	{
265
+		return $this->bucketInstance;
266
+	}
267
+
268
+	/**
269
+	 * @param CouchbaseBucket $couchbaseBucket
270
+	 */
271
+	protected function setBucket(CouchbaseBucket $couchbaseBucket): void
272
+	{
273
+		$this->bucketInstance = $couchbaseBucket;
274
+	}
275
+
276
+
277
+	/**
278
+	 * @param array<string, mixed> $data
279
+	 * @return array<string, mixed>
280
+	 */
281
+	protected function encodeDocument(array $data): array
282
+	{
283
+		$data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX] = $this->encode($data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX]);
284
+		$data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX]
285
+			->format(DateTimeInterface::ATOM);
286
+
287
+		if ($this->getConfig()->isItemDetailedDate()) {
288
+			$data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX]
289
+				->format(\DateTimeInterface::ATOM);
290
+
291
+			$data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX] = $data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX]
292
+				->format(\DateTimeInterface::ATOM);
293
+		}
294
+
295
+		return $data;
296
+	}
297
+
298
+	/**
299
+	 * @param array<string, mixed> $data
300
+	 * @return array<string, mixed>
301
+	 */
302
+	protected function decodeDocument(array $data): array
303
+	{
304
+		$data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX] = $this->unserialize($data[ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX]);
305
+		$data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
306
+			\DateTimeInterface::ATOM,
307
+			$data[ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX]
308
+		);
309
+
310
+		if ($this->getConfig()->isItemDetailedDate()) {
311
+			$data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
312
+				\DateTimeInterface::ATOM,
313
+				$data[ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX]
314
+			);
315
+
316
+			$data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX] = \DateTime::createFromFormat(
317
+				\DateTimeInterface::ATOM,
318
+				$data[ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX]
319
+			);
320
+		}
321
+
322
+		return $data;
323
+	}
324 324
 }
Please login to merge, or discard this patch.
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Couchbasev3/Config.php 1 patch
Indentation   +131 added lines, -131 removed lines patch added patch discarded remove patch
@@ -21,137 +21,137 @@
 block discarded – undo
21 21
 
22 22
 class Config extends ConfigurationOption
23 23
 {
24
-    protected const DEFAULT_VALUE = '_default';
25
-    protected string $host = '127.0.0.1';
26
-    protected int $port = 8091;
24
+	protected const DEFAULT_VALUE = '_default';
25
+	protected string $host = '127.0.0.1';
26
+	protected int $port = 8091;
27 27
 // SSL: 18091
28 28
 
29
-    protected string $username = '';
30
-    protected string $password = '';
31
-    protected string $bucketName = self::DEFAULT_VALUE;
32
-    protected string $scopeName = self::DEFAULT_VALUE;
33
-    protected string $collectionName = self::DEFAULT_VALUE;
34
-
35
-
36
-    public function getHost(): string
37
-    {
38
-        return $this->host;
39
-    }
40
-
41
-    /**
42
-     * @param string $host
43
-     * @return Config
44
-     * @throws PhpfastcacheLogicException
45
-     */
46
-    public function setHost(string $host): Config
47
-    {
48
-        return $this->setProperty('host', $host);
49
-    }
50
-
51
-    /**
52
-     * @return int
53
-     */
54
-    public function getPort()
55
-    {
56
-        return $this->port;
57
-    }
58
-
59
-    /**
60
-     * @param int $port
61
-     * @return Config
62
-     * @throws PhpfastcacheLogicException
63
-     */
64
-    public function setPort(int $port): Config
65
-    {
66
-        return $this->setProperty('port', $port);
67
-    }
68
-
69
-    /**
70
-     * @return string
71
-     */
72
-    public function getUsername(): string
73
-    {
74
-        return $this->username;
75
-    }
76
-
77
-    /**
78
-     * @param string $username
79
-     * @return Config
80
-     * @throws PhpfastcacheLogicException
81
-     */
82
-    public function setUsername(string $username): Config
83
-    {
84
-        return $this->setProperty('username', $username);
85
-    }
86
-
87
-    /**
88
-     * @return string
89
-     */
90
-    public function getPassword(): string
91
-    {
92
-        return $this->password;
93
-    }
94
-
95
-    /**
96
-     * @param string $password
97
-     * @return Config
98
-     * @throws PhpfastcacheLogicException
99
-     */
100
-    public function setPassword(string $password): Config
101
-    {
102
-        return $this->setProperty('password', $password);
103
-    }
104
-
105
-    /**
106
-     * @return string
107
-     */
108
-    public function getBucketName(): string
109
-    {
110
-        return $this->bucketName;
111
-    }
112
-
113
-    /**
114
-     * @param string $bucketName
115
-     * @return Config
116
-     * @throws PhpfastcacheLogicException
117
-     */
118
-    public function setBucketName(string $bucketName): Config
119
-    {
120
-        return $this->setProperty('bucketName', $bucketName);
121
-    }
122
-    /**
123
-     * @return string
124
-     */
125
-    public function getScopeName(): string
126
-    {
127
-        return $this->scopeName;
128
-    }
129
-
130
-    /**
131
-     * @param string $scopeName
132
-     * @return Config
133
-     * @throws PhpfastcacheLogicException
134
-     */
135
-    public function setScopeName(string $scopeName): Config
136
-    {
137
-        return $this->setProperty('scopeName', $scopeName);
138
-    }
139
-
140
-    /**
141
-     * @return string
142
-     */
143
-    public function getCollectionName(): string
144
-    {
145
-        return $this->collectionName;
146
-    }
147
-
148
-    /**
149
-     * @param string $collectionName
150
-     * @return Config
151
-     * @throws PhpfastcacheLogicException
152
-     */
153
-    public function setCollectionName(string $collectionName): Config
154
-    {
155
-        return $this->setProperty('collectionName', $collectionName);
156
-    }
29
+	protected string $username = '';
30
+	protected string $password = '';
31
+	protected string $bucketName = self::DEFAULT_VALUE;
32
+	protected string $scopeName = self::DEFAULT_VALUE;
33
+	protected string $collectionName = self::DEFAULT_VALUE;
34
+
35
+
36
+	public function getHost(): string
37
+	{
38
+		return $this->host;
39
+	}
40
+
41
+	/**
42
+	 * @param string $host
43
+	 * @return Config
44
+	 * @throws PhpfastcacheLogicException
45
+	 */
46
+	public function setHost(string $host): Config
47
+	{
48
+		return $this->setProperty('host', $host);
49
+	}
50
+
51
+	/**
52
+	 * @return int
53
+	 */
54
+	public function getPort()
55
+	{
56
+		return $this->port;
57
+	}
58
+
59
+	/**
60
+	 * @param int $port
61
+	 * @return Config
62
+	 * @throws PhpfastcacheLogicException
63
+	 */
64
+	public function setPort(int $port): Config
65
+	{
66
+		return $this->setProperty('port', $port);
67
+	}
68
+
69
+	/**
70
+	 * @return string
71
+	 */
72
+	public function getUsername(): string
73
+	{
74
+		return $this->username;
75
+	}
76
+
77
+	/**
78
+	 * @param string $username
79
+	 * @return Config
80
+	 * @throws PhpfastcacheLogicException
81
+	 */
82
+	public function setUsername(string $username): Config
83
+	{
84
+		return $this->setProperty('username', $username);
85
+	}
86
+
87
+	/**
88
+	 * @return string
89
+	 */
90
+	public function getPassword(): string
91
+	{
92
+		return $this->password;
93
+	}
94
+
95
+	/**
96
+	 * @param string $password
97
+	 * @return Config
98
+	 * @throws PhpfastcacheLogicException
99
+	 */
100
+	public function setPassword(string $password): Config
101
+	{
102
+		return $this->setProperty('password', $password);
103
+	}
104
+
105
+	/**
106
+	 * @return string
107
+	 */
108
+	public function getBucketName(): string
109
+	{
110
+		return $this->bucketName;
111
+	}
112
+
113
+	/**
114
+	 * @param string $bucketName
115
+	 * @return Config
116
+	 * @throws PhpfastcacheLogicException
117
+	 */
118
+	public function setBucketName(string $bucketName): Config
119
+	{
120
+		return $this->setProperty('bucketName', $bucketName);
121
+	}
122
+	/**
123
+	 * @return string
124
+	 */
125
+	public function getScopeName(): string
126
+	{
127
+		return $this->scopeName;
128
+	}
129
+
130
+	/**
131
+	 * @param string $scopeName
132
+	 * @return Config
133
+	 * @throws PhpfastcacheLogicException
134
+	 */
135
+	public function setScopeName(string $scopeName): Config
136
+	{
137
+		return $this->setProperty('scopeName', $scopeName);
138
+	}
139
+
140
+	/**
141
+	 * @return string
142
+	 */
143
+	public function getCollectionName(): string
144
+	{
145
+		return $this->collectionName;
146
+	}
147
+
148
+	/**
149
+	 * @param string $collectionName
150
+	 * @return Config
151
+	 * @throws PhpfastcacheLogicException
152
+	 */
153
+	public function setCollectionName(string $collectionName): Config
154
+	{
155
+		return $this->setProperty('collectionName', $collectionName);
156
+	}
157 157
 }
Please login to merge, or discard this patch.
vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Files/Driver.php 1 patch
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -36,94 +36,94 @@
 block discarded – undo
36 36
  */
37 37
 class Driver implements AggregatablePoolInterface
38 38
 {
39
-    use IOHelperTrait;
40
-
41
-    /**
42
-     * @return bool
43
-     * @throws PhpfastcacheIOException
44
-     * @throws PhpfastcacheInvalidArgumentException
45
-     */
46
-    public function driverCheck(): bool
47
-    {
48
-        return is_writable($this->getPath()) || mkdir($concurrentDirectory = $this->getPath(), $this->getDefaultChmod(), true) || is_dir($concurrentDirectory);
49
-    }
50
-
51
-    /**
52
-     * @return bool
53
-     */
54
-    protected function driverConnect(): bool
55
-    {
56
-        return true;
57
-    }
58
-
59
-    /**
60
-     * @param ExtendedCacheItemInterface $item
61
-     * @return ?array<string, mixed>
62
-     * @throws PhpfastcacheIOException
63
-     */
64
-    protected function driverRead(ExtendedCacheItemInterface $item): ?array
65
-    {
66
-        $filePath = $this->getFilePath($item->getKey(), true);
67
-
68
-        try {
69
-            $content = $this->readFile($filePath);
70
-        } catch (PhpfastcacheIOException) {
71
-            return null;
72
-        }
73
-
74
-        return $this->decode($content);
75
-    }
76
-
77
-    /**
78
-     * @param ExtendedCacheItemInterface $item
79
-     * @return bool
80
-     * @throws PhpfastcacheIOException
81
-     * @throws PhpfastcacheInvalidArgumentException
82
-     * @throws PhpfastcacheLogicException
83
-     */
84
-    protected function driverWrite(ExtendedCacheItemInterface $item): bool
85
-    {
86
-
87
-        $filePath = $this->getFilePath($item->getKey());
88
-        $data = $this->encode($this->driverPreWrap($item));
89
-
90
-        try {
91
-            return $this->writeFile($filePath, $data, $this->getConfig()->isSecureFileManipulation());
92
-        } catch (Exception) {
93
-            return false;
94
-        }
95
-    }
96
-
97
-    /**
98
-     * @param string $key
99
-     * @param string $encodedKey
100
-     * @return bool
101
-     * @throws PhpfastcacheIOException
102
-     * @throws PhpfastcacheInvalidArgumentException
103
-     */
104
-    protected function driverDelete(string $key, string $encodedKey): bool
105
-    {
106
-
107
-        $filePath = $this->getFilePath($key, true);
108
-        if (\file_exists($filePath) && @\unlink($filePath)) {
109
-            \clearstatcache(true, $filePath);
110
-            $dir = \dirname($filePath);
111
-            if (!(new FilesystemIterator($dir))->valid()) {
112
-                \rmdir($dir);
113
-            }
114
-            return true;
115
-        }
116
-
117
-        return false;
118
-    }
119
-
120
-    /**
121
-     * @return bool
122
-     * @throws \Phpfastcache\Exceptions\PhpfastcacheIOException
123
-     * @throws PhpfastcacheInvalidArgumentException
124
-     */
125
-    protected function driverClear(): bool
126
-    {
127
-        return Directory::rrmdir($this->getPath(true));
128
-    }
39
+	use IOHelperTrait;
40
+
41
+	/**
42
+	 * @return bool
43
+	 * @throws PhpfastcacheIOException
44
+	 * @throws PhpfastcacheInvalidArgumentException
45
+	 */
46
+	public function driverCheck(): bool
47
+	{
48
+		return is_writable($this->getPath()) || mkdir($concurrentDirectory = $this->getPath(), $this->getDefaultChmod(), true) || is_dir($concurrentDirectory);
49
+	}
50
+
51
+	/**
52
+	 * @return bool
53
+	 */
54
+	protected function driverConnect(): bool
55
+	{
56
+		return true;
57
+	}
58
+
59
+	/**
60
+	 * @param ExtendedCacheItemInterface $item
61
+	 * @return ?array<string, mixed>
62
+	 * @throws PhpfastcacheIOException
63
+	 */
64
+	protected function driverRead(ExtendedCacheItemInterface $item): ?array
65
+	{
66
+		$filePath = $this->getFilePath($item->getKey(), true);
67
+
68
+		try {
69
+			$content = $this->readFile($filePath);
70
+		} catch (PhpfastcacheIOException) {
71
+			return null;
72
+		}
73
+
74
+		return $this->decode($content);
75
+	}
76
+
77
+	/**
78
+	 * @param ExtendedCacheItemInterface $item
79
+	 * @return bool
80
+	 * @throws PhpfastcacheIOException
81
+	 * @throws PhpfastcacheInvalidArgumentException
82
+	 * @throws PhpfastcacheLogicException
83
+	 */
84
+	protected function driverWrite(ExtendedCacheItemInterface $item): bool
85
+	{
86
+
87
+		$filePath = $this->getFilePath($item->getKey());
88
+		$data = $this->encode($this->driverPreWrap($item));
89
+
90
+		try {
91
+			return $this->writeFile($filePath, $data, $this->getConfig()->isSecureFileManipulation());
92
+		} catch (Exception) {
93
+			return false;
94
+		}
95
+	}
96
+
97
+	/**
98
+	 * @param string $key
99
+	 * @param string $encodedKey
100
+	 * @return bool
101
+	 * @throws PhpfastcacheIOException
102
+	 * @throws PhpfastcacheInvalidArgumentException
103
+	 */
104
+	protected function driverDelete(string $key, string $encodedKey): bool
105
+	{
106
+
107
+		$filePath = $this->getFilePath($key, true);
108
+		if (\file_exists($filePath) && @\unlink($filePath)) {
109
+			\clearstatcache(true, $filePath);
110
+			$dir = \dirname($filePath);
111
+			if (!(new FilesystemIterator($dir))->valid()) {
112
+				\rmdir($dir);
113
+			}
114
+			return true;
115
+		}
116
+
117
+		return false;
118
+	}
119
+
120
+	/**
121
+	 * @return bool
122
+	 * @throws \Phpfastcache\Exceptions\PhpfastcacheIOException
123
+	 * @throws PhpfastcacheInvalidArgumentException
124
+	 */
125
+	protected function driverClear(): bool
126
+	{
127
+		return Directory::rrmdir($this->getPath(true));
128
+	}
129 129
 }
Please login to merge, or discard this patch.
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Zendshm/Driver.php 1 patch
Indentation   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -29,89 +29,89 @@
 block discarded – undo
29 29
  */
30 30
 class Driver implements AggregatablePoolInterface
31 31
 {
32
-    use TaggableCacheItemPoolTrait;
33
-
34
-    /**
35
-     * @return bool
36
-     */
37
-    public function driverCheck(): bool
38
-    {
39
-        return extension_loaded('Zend Data Cache') && function_exists('zend_shm_cache_store');
40
-    }
41
-
42
-    /**
43
-     * @return string
44
-     */
45
-    public function getHelp(): string
46
-    {
47
-        return <<<HELP
32
+	use TaggableCacheItemPoolTrait;
33
+
34
+	/**
35
+	 * @return bool
36
+	 */
37
+	public function driverCheck(): bool
38
+	{
39
+		return extension_loaded('Zend Data Cache') && function_exists('zend_shm_cache_store');
40
+	}
41
+
42
+	/**
43
+	 * @return string
44
+	 */
45
+	public function getHelp(): string
46
+	{
47
+		return <<<HELP
48 48
 <p>
49 49
 This driver rely on Zend Server 8.5+, see: https://www.zend.com/products/zend-server
50 50
 </p>
51 51
 HELP;
52
-    }
53
-
54
-    /**
55
-     * @return DriverStatistic
56
-     */
57
-    public function getStats(): DriverStatistic
58
-    {
59
-        $stats = (array)zend_shm_cache_info();
60
-        return (new DriverStatistic())
61
-            ->setData(implode(', ', array_keys($this->itemInstances)))
62
-            ->setInfo(sprintf("The Zend memory have %d item(s) in cache.\n For more information see RawData.", $stats['items_total']))
63
-            ->setRawData($stats)
64
-            ->setSize($stats['memory_total']);
65
-    }
66
-
67
-    /**
68
-     * @return bool
69
-     */
70
-    protected function driverConnect(): bool
71
-    {
72
-        return true;
73
-    }
74
-
75
-    /**
76
-     * @param ExtendedCacheItemInterface $item
77
-     * @return ?array<string, mixed>
78
-     */
79
-    protected function driverRead(ExtendedCacheItemInterface $item): ?array
80
-    {
81
-        $data = zend_shm_cache_fetch($item->getKey());
82
-
83
-        if (empty($data) || !\is_array($data)) {
84
-            return null;
85
-        }
86
-
87
-        return $data;
88
-    }
89
-
90
-    /**
91
-     * @param ExtendedCacheItemInterface $item
92
-     * @return mixed
93
-     * @throws PhpfastcacheInvalidArgumentException
94
-     */
95
-    protected function driverWrite(ExtendedCacheItemInterface $item): bool
96
-    {
97
-
98
-        $ttl = $item->getExpirationDate()->getTimestamp() - time();
99
-
100
-        return zend_shm_cache_store($item->getKey(), $this->driverPreWrap($item), ($ttl > 0 ? $ttl : 0));
101
-    }
102
-
103
-    /**
104
-     * @param string $key
105
-     * @param string $encodedKey
106
-     * @return bool
107
-     */
108
-    protected function driverDelete(string $key, string $encodedKey): bool
109
-    {
110
-        return (bool)zend_shm_cache_delete($key);
111
-    }
112
-
113
-    protected function driverClear(): bool
114
-    {
115
-        return @zend_shm_cache_clear();
116
-    }
52
+	}
53
+
54
+	/**
55
+	 * @return DriverStatistic
56
+	 */
57
+	public function getStats(): DriverStatistic
58
+	{
59
+		$stats = (array)zend_shm_cache_info();
60
+		return (new DriverStatistic())
61
+			->setData(implode(', ', array_keys($this->itemInstances)))
62
+			->setInfo(sprintf("The Zend memory have %d item(s) in cache.\n For more information see RawData.", $stats['items_total']))
63
+			->setRawData($stats)
64
+			->setSize($stats['memory_total']);
65
+	}
66
+
67
+	/**
68
+	 * @return bool
69
+	 */
70
+	protected function driverConnect(): bool
71
+	{
72
+		return true;
73
+	}
74
+
75
+	/**
76
+	 * @param ExtendedCacheItemInterface $item
77
+	 * @return ?array<string, mixed>
78
+	 */
79
+	protected function driverRead(ExtendedCacheItemInterface $item): ?array
80
+	{
81
+		$data = zend_shm_cache_fetch($item->getKey());
82
+
83
+		if (empty($data) || !\is_array($data)) {
84
+			return null;
85
+		}
86
+
87
+		return $data;
88
+	}
89
+
90
+	/**
91
+	 * @param ExtendedCacheItemInterface $item
92
+	 * @return mixed
93
+	 * @throws PhpfastcacheInvalidArgumentException
94
+	 */
95
+	protected function driverWrite(ExtendedCacheItemInterface $item): bool
96
+	{
97
+
98
+		$ttl = $item->getExpirationDate()->getTimestamp() - time();
99
+
100
+		return zend_shm_cache_store($item->getKey(), $this->driverPreWrap($item), ($ttl > 0 ? $ttl : 0));
101
+	}
102
+
103
+	/**
104
+	 * @param string $key
105
+	 * @param string $encodedKey
106
+	 * @return bool
107
+	 */
108
+	protected function driverDelete(string $key, string $encodedKey): bool
109
+	{
110
+		return (bool)zend_shm_cache_delete($key);
111
+	}
112
+
113
+	protected function driverClear(): bool
114
+	{
115
+		return @zend_shm_cache_clear();
116
+	}
117 117
 }
Please login to merge, or discard this patch.
vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Predis/Driver.php 1 patch
Indentation   +192 added lines, -192 removed lines patch added patch discarded remove patch
@@ -35,201 +35,201 @@
 block discarded – undo
35 35
  */
36 36
 class Driver implements AggregatablePoolInterface
37 37
 {
38
-    use TaggableCacheItemPoolTrait;
39
-
40
-    /**
41
-     * @return bool
42
-     */
43
-    public function driverCheck(): bool
44
-    {
45
-        if (extension_loaded('Redis')) {
46
-            trigger_error('The native Redis extension is installed, you should use Redis instead of Predis to increase performances', E_USER_NOTICE);
47
-        }
48
-
49
-        return class_exists(\Predis\Client::class);
50
-    }
51
-
52
-    /**
53
-     * @return string
54
-     */
55
-    public function getHelp(): string
56
-    {
57
-        return <<<HELP
38
+	use TaggableCacheItemPoolTrait;
39
+
40
+	/**
41
+	 * @return bool
42
+	 */
43
+	public function driverCheck(): bool
44
+	{
45
+		if (extension_loaded('Redis')) {
46
+			trigger_error('The native Redis extension is installed, you should use Redis instead of Predis to increase performances', E_USER_NOTICE);
47
+		}
48
+
49
+		return class_exists(\Predis\Client::class);
50
+	}
51
+
52
+	/**
53
+	 * @return string
54
+	 */
55
+	public function getHelp(): string
56
+	{
57
+		return <<<HELP
58 58
 <p>
59 59
 To install the Predis library via Composer:
60 60
 <code>composer require "predis/predis" "~1.1.0"</code>
61 61
 </p>
62 62
 HELP;
63
-    }
64
-
65
-    /**
66
-     * @return DriverStatistic
67
-     */
68
-    public function getStats(): DriverStatistic
69
-    {
70
-        $info = $this->instance->info();
71
-        $size = ($info['Memory']['used_memory'] ?? 0);
72
-        $version = ($info['Server']['redis_version'] ?? 0);
73
-        $date = (isset($info['Server']['uptime_in_seconds']) ? (new DateTime())->setTimestamp(time() - $info['Server']['uptime_in_seconds']) : 'unknown date');
74
-
75
-        return (new DriverStatistic())
76
-            ->setData(implode(', ', array_keys($this->itemInstances)))
77
-            ->setRawData($info)
78
-            ->setSize((int)$size)
79
-            ->setInfo(
80
-                sprintf(
81
-                    "The Redis daemon v%s (with Predis v%s) is up since %s.\n For more information see RawData. \n Driver size includes the memory allocation size.",
82
-                    $version,
83
-                    PredisClient::VERSION,
84
-                    $date->format(DATE_RFC2822)
85
-                )
86
-            );
87
-    }
88
-
89
-    /**
90
-     * @return bool
91
-     * @throws PhpfastcacheDriverException
92
-     * @throws PhpfastcacheLogicException
93
-     */
94
-    protected function driverConnect(): bool
95
-    {
96
-        /**
97
-         * In case of a user-provided
98
-         * Predis client just return here
99
-         */
100
-        if ($this->getConfig()->getPredisClient() instanceof PredisClient) {
101
-            $this->instance = $this->getConfig()->getPredisClient();
102
-            if (!$this->instance->isConnected()) {
103
-                $this->instance->connect();
104
-            }
105
-            return true;
106
-        }
107
-
108
-        $options = [];
109
-
110
-        if ($this->getConfig()->getOptPrefix()) {
111
-            $options['prefix'] = $this->getConfig()->getOptPrefix();
112
-        }
113
-
114
-        if (!empty($this->getConfig()->getPath())) {
115
-            $this->instance = new PredisClient(
116
-                [
117
-                    'scheme' => $this->getConfig()->getScheme(),
118
-                    'persistent' => $this->getConfig()->isPersistent(),
119
-                    'timeout' => $this->getConfig()->getTimeout(),
120
-                    'path' => $this->getConfig()->getPath(),
121
-                ],
122
-                $options
123
-            );
124
-        } else {
125
-            $this->instance = new PredisClient($this->getConfig()->getPredisConfigArray(), $options);
126
-        }
127
-
128
-        try {
129
-            $this->instance->connect();
130
-        } catch (PredisConnectionException $e) {
131
-            throw new PhpfastcacheDriverException(
132
-                'Failed to connect to predis server. Check the Predis documentation: https://github.com/nrk/predis/tree/v1.1#how-to-install-and-use-predis',
133
-                0,
134
-                $e
135
-            );
136
-        }
137
-
138
-        return true;
139
-    }
140
-
141
-    /**
142
-     * @param ExtendedCacheItemInterface $item
143
-     * @return ?array<string, mixed>
144
-     */
145
-    protected function driverRead(ExtendedCacheItemInterface $item): ?array
146
-    {
147
-        $val = $this->instance->get($item->getKey());
148
-
149
-        if ($val === null) {
150
-            return null;
151
-        }
152
-
153
-        return $this->decode($val);
154
-    }
155
-
156
-
157
-    /**
158
-     * @param ExtendedCacheItemInterface ...$items
159
-     * @return array<array<string, mixed>>
160
-     * @throws \Phpfastcache\Exceptions\PhpfastcacheDriverException
161
-     * @throws \RedisException
162
-     */
163
-    protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
164
-    {
165
-        $keys = $this->getKeys($items);
166
-
167
-        return array_combine($keys, array_map(
168
-            fn($val) => $val ? $this->decode($val) : null,
169
-            $this->instance->mget($keys)
170
-        ));
171
-    }
172
-
173
-    /**
174
-     * @return array<int, string>
175
-     * @throws \RedisException
176
-     */
177
-    protected function driverReadAllKeys(string $pattern = '*'): iterable
178
-    {
179
-        $keys = [];
180
-        foreach (new PredisIterator\Keyspace($this->instance, $pattern, ExtendedCacheItemPoolInterface::MAX_ALL_KEYS_COUNT) as $key) {
181
-            $keys[] = $key;
182
-        }
183
-        return $keys;
184
-    }
185
-
186
-
187
-    /**
188
-     * @param ExtendedCacheItemInterface $item
189
-     * @return mixed
190
-     * @throws PhpfastcacheInvalidArgumentException
191
-     * @throws PhpfastcacheLogicException
192
-     */
193
-    protected function driverWrite(ExtendedCacheItemInterface $item): bool
194
-    {
195
-
196
-        $ttl = $item->getExpirationDate()->getTimestamp() - time();
197
-
198
-        /**
199
-         * @see https://redis.io/commands/setex
200
-         * @see https://redis.io/commands/expire
201
-         */
202
-        if ($ttl <= 0) {
203
-            return (bool)$this->instance->expire($item->getKey(), 0);
204
-        }
205
-
206
-        return $this->instance->setex($item->getKey(), $ttl, $this->encode($this->driverPreWrap($item)))->getPayload() === 'OK';
207
-    }
208
-
209
-    /**
210
-     * @param string $key
211
-     * @param string $encodedKey
212
-     * @return bool
213
-     */
214
-    protected function driverDelete(string $key, string $encodedKey): bool
215
-    {
216
-        return (bool)$this->instance->del([$key]);
217
-    }
218
-
219
-    /**
220
-     * @param string[] $keys
221
-     * @return bool
222
-     */
223
-    protected function driverDeleteMultiple(array $keys): bool
224
-    {
225
-        return (bool) $this->instance->del(...$keys);
226
-    }
227
-
228
-    /**
229
-     * @return bool
230
-     */
231
-    protected function driverClear(): bool
232
-    {
233
-        return $this->instance->flushdb()->getPayload() === 'OK';
234
-    }
63
+	}
64
+
65
+	/**
66
+	 * @return DriverStatistic
67
+	 */
68
+	public function getStats(): DriverStatistic
69
+	{
70
+		$info = $this->instance->info();
71
+		$size = ($info['Memory']['used_memory'] ?? 0);
72
+		$version = ($info['Server']['redis_version'] ?? 0);
73
+		$date = (isset($info['Server']['uptime_in_seconds']) ? (new DateTime())->setTimestamp(time() - $info['Server']['uptime_in_seconds']) : 'unknown date');
74
+
75
+		return (new DriverStatistic())
76
+			->setData(implode(', ', array_keys($this->itemInstances)))
77
+			->setRawData($info)
78
+			->setSize((int)$size)
79
+			->setInfo(
80
+				sprintf(
81
+					"The Redis daemon v%s (with Predis v%s) is up since %s.\n For more information see RawData. \n Driver size includes the memory allocation size.",
82
+					$version,
83
+					PredisClient::VERSION,
84
+					$date->format(DATE_RFC2822)
85
+				)
86
+			);
87
+	}
88
+
89
+	/**
90
+	 * @return bool
91
+	 * @throws PhpfastcacheDriverException
92
+	 * @throws PhpfastcacheLogicException
93
+	 */
94
+	protected function driverConnect(): bool
95
+	{
96
+		/**
97
+		 * In case of a user-provided
98
+		 * Predis client just return here
99
+		 */
100
+		if ($this->getConfig()->getPredisClient() instanceof PredisClient) {
101
+			$this->instance = $this->getConfig()->getPredisClient();
102
+			if (!$this->instance->isConnected()) {
103
+				$this->instance->connect();
104
+			}
105
+			return true;
106
+		}
107
+
108
+		$options = [];
109
+
110
+		if ($this->getConfig()->getOptPrefix()) {
111
+			$options['prefix'] = $this->getConfig()->getOptPrefix();
112
+		}
113
+
114
+		if (!empty($this->getConfig()->getPath())) {
115
+			$this->instance = new PredisClient(
116
+				[
117
+					'scheme' => $this->getConfig()->getScheme(),
118
+					'persistent' => $this->getConfig()->isPersistent(),
119
+					'timeout' => $this->getConfig()->getTimeout(),
120
+					'path' => $this->getConfig()->getPath(),
121
+				],
122
+				$options
123
+			);
124
+		} else {
125
+			$this->instance = new PredisClient($this->getConfig()->getPredisConfigArray(), $options);
126
+		}
127
+
128
+		try {
129
+			$this->instance->connect();
130
+		} catch (PredisConnectionException $e) {
131
+			throw new PhpfastcacheDriverException(
132
+				'Failed to connect to predis server. Check the Predis documentation: https://github.com/nrk/predis/tree/v1.1#how-to-install-and-use-predis',
133
+				0,
134
+				$e
135
+			);
136
+		}
137
+
138
+		return true;
139
+	}
140
+
141
+	/**
142
+	 * @param ExtendedCacheItemInterface $item
143
+	 * @return ?array<string, mixed>
144
+	 */
145
+	protected function driverRead(ExtendedCacheItemInterface $item): ?array
146
+	{
147
+		$val = $this->instance->get($item->getKey());
148
+
149
+		if ($val === null) {
150
+			return null;
151
+		}
152
+
153
+		return $this->decode($val);
154
+	}
155
+
156
+
157
+	/**
158
+	 * @param ExtendedCacheItemInterface ...$items
159
+	 * @return array<array<string, mixed>>
160
+	 * @throws \Phpfastcache\Exceptions\PhpfastcacheDriverException
161
+	 * @throws \RedisException
162
+	 */
163
+	protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
164
+	{
165
+		$keys = $this->getKeys($items);
166
+
167
+		return array_combine($keys, array_map(
168
+			fn($val) => $val ? $this->decode($val) : null,
169
+			$this->instance->mget($keys)
170
+		));
171
+	}
172
+
173
+	/**
174
+	 * @return array<int, string>
175
+	 * @throws \RedisException
176
+	 */
177
+	protected function driverReadAllKeys(string $pattern = '*'): iterable
178
+	{
179
+		$keys = [];
180
+		foreach (new PredisIterator\Keyspace($this->instance, $pattern, ExtendedCacheItemPoolInterface::MAX_ALL_KEYS_COUNT) as $key) {
181
+			$keys[] = $key;
182
+		}
183
+		return $keys;
184
+	}
185
+
186
+
187
+	/**
188
+	 * @param ExtendedCacheItemInterface $item
189
+	 * @return mixed
190
+	 * @throws PhpfastcacheInvalidArgumentException
191
+	 * @throws PhpfastcacheLogicException
192
+	 */
193
+	protected function driverWrite(ExtendedCacheItemInterface $item): bool
194
+	{
195
+
196
+		$ttl = $item->getExpirationDate()->getTimestamp() - time();
197
+
198
+		/**
199
+		 * @see https://redis.io/commands/setex
200
+		 * @see https://redis.io/commands/expire
201
+		 */
202
+		if ($ttl <= 0) {
203
+			return (bool)$this->instance->expire($item->getKey(), 0);
204
+		}
205
+
206
+		return $this->instance->setex($item->getKey(), $ttl, $this->encode($this->driverPreWrap($item)))->getPayload() === 'OK';
207
+	}
208
+
209
+	/**
210
+	 * @param string $key
211
+	 * @param string $encodedKey
212
+	 * @return bool
213
+	 */
214
+	protected function driverDelete(string $key, string $encodedKey): bool
215
+	{
216
+		return (bool)$this->instance->del([$key]);
217
+	}
218
+
219
+	/**
220
+	 * @param string[] $keys
221
+	 * @return bool
222
+	 */
223
+	protected function driverDeleteMultiple(array $keys): bool
224
+	{
225
+		return (bool) $this->instance->del(...$keys);
226
+	}
227
+
228
+	/**
229
+	 * @return bool
230
+	 */
231
+	protected function driverClear(): bool
232
+	{
233
+		return $this->instance->flushdb()->getPayload() === 'OK';
234
+	}
235 235
 }
Please login to merge, or discard this patch.
vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Predis/Config.php 1 patch
Indentation   +189 added lines, -189 removed lines patch added patch discarded remove patch
@@ -23,194 +23,194 @@
 block discarded – undo
23 23
 
24 24
 class Config extends ConfigurationOption
25 25
 {
26
-    protected string $host = '127.0.0.1';
27
-    protected int $port = 6379;
28
-    protected string $password = '';
29
-    protected int $database = 0;
30
-    protected ?Client $predisClient = null;
31
-    protected string $optPrefix = '';
32
-    protected int $timeout = 5;
33
-    protected bool $persistent = false;
34
-    protected string $scheme = 'unix';
26
+	protected string $host = '127.0.0.1';
27
+	protected int $port = 6379;
28
+	protected string $password = '';
29
+	protected int $database = 0;
30
+	protected ?Client $predisClient = null;
31
+	protected string $optPrefix = '';
32
+	protected int $timeout = 5;
33
+	protected bool $persistent = false;
34
+	protected string $scheme = 'unix';
35 35
 /**
36
-     * @return array<string, mixed>
37
-     */
38
-    public function getPredisConfigArray(): array
39
-    {
40
-        return [
41
-            'host' => $this->getHost(),
42
-            'port' => $this->getPort(),
43
-            'password' => $this->getPassword() ?: null,
44
-            'database' => $this->getDatabase(),
45
-            'timeout' => $this->getTimeout(),
46
-        ];
47
-    }
48
-
49
-    /**
50
-     * @return string
51
-     */
52
-    public function getHost(): string
53
-    {
54
-        return $this->host;
55
-    }
56
-
57
-    /**
58
-     * @param string $host
59
-     * @return Config
60
-     * @throws PhpfastcacheLogicException
61
-     */
62
-    public function setHost(string $host): static
63
-    {
64
-        return $this->setProperty('host', $host);
65
-    }
66
-
67
-    /**
68
-     * @return int
69
-     */
70
-    public function getPort(): int
71
-    {
72
-        return $this->port;
73
-    }
74
-
75
-    /**
76
-     * @param int $port
77
-     * @return Config
78
-     * @throws PhpfastcacheLogicException
79
-     */
80
-    public function setPort(int $port): static
81
-    {
82
-        return $this->setProperty('port', $port);
83
-    }
84
-
85
-    /**
86
-     * @return string
87
-     */
88
-    public function getPassword(): string
89
-    {
90
-        return $this->password;
91
-    }
92
-
93
-    /**
94
-     * @param string $password
95
-     * @return self
96
-     * @throws PhpfastcacheLogicException
97
-     */
98
-    public function setPassword(string $password): static
99
-    {
100
-        return $this->setProperty('password', $password);
101
-    }
102
-
103
-    /**
104
-     * @return int
105
-     */
106
-    public function getDatabase(): int
107
-    {
108
-        return $this->database;
109
-    }
110
-
111
-    /**
112
-     * @param int $database
113
-     * @return Config
114
-     * @throws PhpfastcacheLogicException
115
-     */
116
-    public function setDatabase(int $database): static
117
-    {
118
-        return $this->setProperty('database', $database);
119
-    }
120
-
121
-    /**
122
-     * @return int
123
-     */
124
-    public function getTimeout(): int
125
-    {
126
-        return $this->timeout;
127
-    }
128
-
129
-    /**
130
-     * @param int $timeout
131
-     * @return self
132
-     * @throws PhpfastcacheLogicException
133
-     */
134
-    public function setTimeout(int $timeout): static
135
-    {
136
-        return $this->setProperty('timeout', $timeout);
137
-    }
138
-
139
-    /**
140
-     * @return Client|null
141
-     */
142
-    public function getPredisClient(): ?Client
143
-    {
144
-        return $this->predisClient;
145
-    }
146
-
147
-    /**
148
-     * @param Client|null $predisClient
149
-     * @return Config
150
-     * @throws PhpfastcacheLogicException
151
-     */
152
-    public function setPredisClient(?Client $predisClient = null): Config
153
-    {
154
-        return $this->setProperty('predisClient', $predisClient);
155
-    }
156
-
157
-    /**
158
-     * @return string
159
-     * @since 7.0.2
160
-     */
161
-    public function getOptPrefix(): string
162
-    {
163
-        return $this->optPrefix;
164
-    }
165
-
166
-    /**
167
-     * @param string $optPrefix
168
-     * @return Config
169
-     * @throws PhpfastcacheLogicException
170
-     * @since 7.0.2
171
-     */
172
-    public function setOptPrefix(string $optPrefix): Config
173
-    {
174
-        return $this->setProperty('optPrefix', trim($optPrefix));
175
-    }
176
-
177
-    /**
178
-     * @return bool
179
-     */
180
-    public function isPersistent(): bool
181
-    {
182
-        return $this->persistent;
183
-    }
184
-
185
-    /**
186
-     * @param bool $persistent
187
-     * @return Config
188
-     * @throws PhpfastcacheLogicException
189
-     */
190
-    public function setPersistent(bool $persistent): Config
191
-    {
192
-        return $this->setProperty('persistent', $persistent);
193
-    }
194
-
195
-    /**
196
-     * @return string
197
-     */
198
-    public function getScheme(): string
199
-    {
200
-        return $this->scheme;
201
-    }
202
-
203
-    /**
204
-     * @param string $scheme
205
-     * @return Config
206
-     * @throws PhpfastcacheInvalidConfigurationException
207
-     * @throws PhpfastcacheLogicException
208
-     */
209
-    public function setScheme(string $scheme): Config
210
-    {
211
-        if (!in_array($scheme, ['unix', 'tls'], true)) {
212
-            throw new PhpfastcacheInvalidConfigurationException('Invalid scheme: ' . $scheme);
213
-        }
214
-        return $this->setProperty('scheme', $scheme);
215
-    }
36
+	 * @return array<string, mixed>
37
+	 */
38
+	public function getPredisConfigArray(): array
39
+	{
40
+		return [
41
+			'host' => $this->getHost(),
42
+			'port' => $this->getPort(),
43
+			'password' => $this->getPassword() ?: null,
44
+			'database' => $this->getDatabase(),
45
+			'timeout' => $this->getTimeout(),
46
+		];
47
+	}
48
+
49
+	/**
50
+	 * @return string
51
+	 */
52
+	public function getHost(): string
53
+	{
54
+		return $this->host;
55
+	}
56
+
57
+	/**
58
+	 * @param string $host
59
+	 * @return Config
60
+	 * @throws PhpfastcacheLogicException
61
+	 */
62
+	public function setHost(string $host): static
63
+	{
64
+		return $this->setProperty('host', $host);
65
+	}
66
+
67
+	/**
68
+	 * @return int
69
+	 */
70
+	public function getPort(): int
71
+	{
72
+		return $this->port;
73
+	}
74
+
75
+	/**
76
+	 * @param int $port
77
+	 * @return Config
78
+	 * @throws PhpfastcacheLogicException
79
+	 */
80
+	public function setPort(int $port): static
81
+	{
82
+		return $this->setProperty('port', $port);
83
+	}
84
+
85
+	/**
86
+	 * @return string
87
+	 */
88
+	public function getPassword(): string
89
+	{
90
+		return $this->password;
91
+	}
92
+
93
+	/**
94
+	 * @param string $password
95
+	 * @return self
96
+	 * @throws PhpfastcacheLogicException
97
+	 */
98
+	public function setPassword(string $password): static
99
+	{
100
+		return $this->setProperty('password', $password);
101
+	}
102
+
103
+	/**
104
+	 * @return int
105
+	 */
106
+	public function getDatabase(): int
107
+	{
108
+		return $this->database;
109
+	}
110
+
111
+	/**
112
+	 * @param int $database
113
+	 * @return Config
114
+	 * @throws PhpfastcacheLogicException
115
+	 */
116
+	public function setDatabase(int $database): static
117
+	{
118
+		return $this->setProperty('database', $database);
119
+	}
120
+
121
+	/**
122
+	 * @return int
123
+	 */
124
+	public function getTimeout(): int
125
+	{
126
+		return $this->timeout;
127
+	}
128
+
129
+	/**
130
+	 * @param int $timeout
131
+	 * @return self
132
+	 * @throws PhpfastcacheLogicException
133
+	 */
134
+	public function setTimeout(int $timeout): static
135
+	{
136
+		return $this->setProperty('timeout', $timeout);
137
+	}
138
+
139
+	/**
140
+	 * @return Client|null
141
+	 */
142
+	public function getPredisClient(): ?Client
143
+	{
144
+		return $this->predisClient;
145
+	}
146
+
147
+	/**
148
+	 * @param Client|null $predisClient
149
+	 * @return Config
150
+	 * @throws PhpfastcacheLogicException
151
+	 */
152
+	public function setPredisClient(?Client $predisClient = null): Config
153
+	{
154
+		return $this->setProperty('predisClient', $predisClient);
155
+	}
156
+
157
+	/**
158
+	 * @return string
159
+	 * @since 7.0.2
160
+	 */
161
+	public function getOptPrefix(): string
162
+	{
163
+		return $this->optPrefix;
164
+	}
165
+
166
+	/**
167
+	 * @param string $optPrefix
168
+	 * @return Config
169
+	 * @throws PhpfastcacheLogicException
170
+	 * @since 7.0.2
171
+	 */
172
+	public function setOptPrefix(string $optPrefix): Config
173
+	{
174
+		return $this->setProperty('optPrefix', trim($optPrefix));
175
+	}
176
+
177
+	/**
178
+	 * @return bool
179
+	 */
180
+	public function isPersistent(): bool
181
+	{
182
+		return $this->persistent;
183
+	}
184
+
185
+	/**
186
+	 * @param bool $persistent
187
+	 * @return Config
188
+	 * @throws PhpfastcacheLogicException
189
+	 */
190
+	public function setPersistent(bool $persistent): Config
191
+	{
192
+		return $this->setProperty('persistent', $persistent);
193
+	}
194
+
195
+	/**
196
+	 * @return string
197
+	 */
198
+	public function getScheme(): string
199
+	{
200
+		return $this->scheme;
201
+	}
202
+
203
+	/**
204
+	 * @param string $scheme
205
+	 * @return Config
206
+	 * @throws PhpfastcacheInvalidConfigurationException
207
+	 * @throws PhpfastcacheLogicException
208
+	 */
209
+	public function setScheme(string $scheme): Config
210
+	{
211
+		if (!in_array($scheme, ['unix', 'tls'], true)) {
212
+			throw new PhpfastcacheInvalidConfigurationException('Invalid scheme: ' . $scheme);
213
+		}
214
+		return $this->setProperty('scheme', $scheme);
215
+	}
216 216
 }
Please login to merge, or discard this patch.
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Memcached/Driver.php 1 patch
Indentation   +185 added lines, -185 removed lines patch added patch discarded remove patch
@@ -42,189 +42,189 @@
 block discarded – undo
42 42
  */
43 43
 class Driver implements AggregatablePoolInterface
44 44
 {
45
-    use TaggableCacheItemPoolTrait {
46
-        __construct as protected __parentConstruct;
47
-    }
48
-    use MemcacheDriverCollisionDetectorTrait;
49
-
50
-    /**
51
-     * Driver constructor.
52
-     * @param ConfigurationOption $config
53
-     * @param string $instanceId
54
-     * @param EventManagerInterface $em
55
-     * @throws PhpfastcacheDriverConnectException
56
-     * @throws PhpfastcacheInvalidArgumentException
57
-     * @throws PhpfastcacheCoreException
58
-     * @throws PhpfastcacheDriverCheckException
59
-     * @throws PhpfastcacheIOException
60
-     */
61
-    public function __construct(ConfigurationOption $config, string $instanceId, EventManagerInterface $em)
62
-    {
63
-        self::checkCollision('Memcached');
64
-        $this->__parentConstruct($config, $instanceId, $em);
65
-    }
66
-
67
-    /**
68
-     * @return bool
69
-     */
70
-    public function driverCheck(): bool
71
-    {
72
-        return class_exists('Memcached');
73
-    }
74
-
75
-    /**
76
-     * @return DriverStatistic
77
-     */
78
-    public function getStats(): DriverStatistic
79
-    {
80
-        $stats = current($this->instance->getStats());
81
-        $stats['uptime'] = $stats['uptime'] ?? 0;
82
-        $stats['bytes'] = $stats['bytes'] ?? 0;
83
-        $stats['version'] = $stats['version'] ?? $this->instance->getVersion();
84
-
85
-        $date = (new DateTime())->setTimestamp(time() - $stats['uptime']);
86
-
87
-        return (new DriverStatistic())
88
-            ->setData(implode(', ', array_keys($this->itemInstances)))
89
-            ->setInfo(sprintf("The memcache daemon v%s is up since %s.\n For more information see RawData.", $stats['version'], $date->format(DATE_RFC2822)))
90
-            ->setRawData($stats)
91
-            ->setSize((int)$stats['bytes']);
92
-    }
93
-
94
-    /**
95
-     * @return bool
96
-     * @throws PhpfastcacheDriverException
97
-     */
98
-    protected function driverConnect(): bool
99
-    {
100
-        $this->instance = new MemcachedSoftware();
101
-        $optPrefix = $this->getConfig()->getOptPrefix();
102
-        $this->instance->setOption(MemcachedSoftware::OPT_BINARY_PROTOCOL, true);
103
-
104
-        if ($optPrefix) {
105
-            $this->instance->setOption(MemcachedSoftware::OPT_PREFIX_KEY, $optPrefix);
106
-        }
107
-
108
-        foreach ($this->getConfig()->getServers() as $server) {
109
-            $connected = false;
110
-            /**
111
-             * If path is provided we consider it as an UNIX Socket
112
-             */
113
-            if (!empty($server['path'])) {
114
-                $connected = $this->instance->addServer($server['path'], 0);
115
-            } elseif (!empty($server['host'])) {
116
-                $connected = $this->instance->addServer($server['host'], $server['port']);
117
-            }
118
-            if (!empty($server['saslUser']) && !empty($server['saslPassword'])) {
119
-                $this->instance->setSaslAuthData($server['saslUser'], $server['saslPassword']);
120
-            }
121
-            if (!$connected) {
122
-                throw new PhpfastcacheDriverConnectException(
123
-                    sprintf(
124
-                        'Failed to connect to memcache host/path "%s".',
125
-                        $server['host'] ?: $server['path'],
126
-                    )
127
-                );
128
-            }
129
-        }
130
-
131
-        /**
132
-         * Since Memcached does not throw
133
-         * any error if not connected ...
134
-         */
135
-        $version = $this->instance->getVersion();
136
-        if (!$version || $this->instance->getResultCode() !== MemcachedSoftware::RES_SUCCESS) {
137
-            throw new PhpfastcacheDriverException('Memcached seems to not be connected');
138
-        }
139
-        return true;
140
-    }
141
-
142
-    /**
143
-     * @param ExtendedCacheItemInterface $item
144
-     * @return ?array<string, mixed>
145
-     */
146
-    protected function driverRead(ExtendedCacheItemInterface $item): ?array
147
-    {
148
-        $val = $this->instance->get($item->getKey());
149
-
150
-        if (empty($val) || !\is_array($val)) {
151
-            return null;
152
-        }
153
-
154
-        return $val;
155
-    }
156
-
157
-    /**
158
-     * @param ExtendedCacheItemInterface ...$items
159
-     * @return array<array<string, mixed>>
160
-     */
161
-    protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
162
-    {
163
-        $keys = $this->getKeys($items);
164
-
165
-        $val = $this->instance->getMulti($keys);
166
-
167
-        if (empty($val) || !\is_array($val)) {
168
-            return [];
169
-        }
170
-
171
-        return $val;
172
-    }
173
-
174
-
175
-    /**
176
-     * @return array<string, mixed>
177
-     * @throws PhpfastcacheInvalidArgumentException
178
-     */
179
-    protected function driverReadAllKeys(string $pattern = ''): iterable
180
-    {
181
-        if ($pattern !== '') {
182
-            $this->throwUnsupportedDriverReadAllPattern('https://www.php.net/manual/en/memcached.getallkeys.php');
183
-        }
184
-        $keys = $this->instance->getAllKeys();
185
-
186
-        if (is_iterable($keys)) {
187
-            return $keys;
188
-        } else {
189
-            return [];
190
-        }
191
-    }
192
-
193
-    /**
194
-     * @param ExtendedCacheItemInterface $item
195
-     * @return bool
196
-     * @throws PhpfastcacheInvalidArgumentException
197
-     * @throws PhpfastcacheLogicException
198
-     */
199
-    protected function driverWrite(ExtendedCacheItemInterface $item): bool
200
-    {
201
-
202
-        $ttl = $item->getExpirationDate()->getTimestamp() - time();
203
-
204
-        // Memcache will only allow a expiration timer less than 2592000 seconds,
205
-        // otherwise, it will assume you're giving it a UNIX timestamp.
206
-        if ($ttl > 2592000) {
207
-            $ttl = time() + $ttl;
208
-        }
209
-
210
-        return $this->instance->set($item->getKey(), $this->driverPreWrap($item), $ttl);
211
-    }
212
-
213
-    /**
214
-     * @param string $key
215
-     * @param string $encodedKey
216
-     * @return bool
217
-     */
218
-    protected function driverDelete(string $key, string $encodedKey): bool
219
-    {
220
-        return $this->instance->delete($key);
221
-    }
222
-
223
-    /**
224
-     * @return bool
225
-     */
226
-    protected function driverClear(): bool
227
-    {
228
-        return $this->instance->flush();
229
-    }
45
+	use TaggableCacheItemPoolTrait {
46
+		__construct as protected __parentConstruct;
47
+	}
48
+	use MemcacheDriverCollisionDetectorTrait;
49
+
50
+	/**
51
+	 * Driver constructor.
52
+	 * @param ConfigurationOption $config
53
+	 * @param string $instanceId
54
+	 * @param EventManagerInterface $em
55
+	 * @throws PhpfastcacheDriverConnectException
56
+	 * @throws PhpfastcacheInvalidArgumentException
57
+	 * @throws PhpfastcacheCoreException
58
+	 * @throws PhpfastcacheDriverCheckException
59
+	 * @throws PhpfastcacheIOException
60
+	 */
61
+	public function __construct(ConfigurationOption $config, string $instanceId, EventManagerInterface $em)
62
+	{
63
+		self::checkCollision('Memcached');
64
+		$this->__parentConstruct($config, $instanceId, $em);
65
+	}
66
+
67
+	/**
68
+	 * @return bool
69
+	 */
70
+	public function driverCheck(): bool
71
+	{
72
+		return class_exists('Memcached');
73
+	}
74
+
75
+	/**
76
+	 * @return DriverStatistic
77
+	 */
78
+	public function getStats(): DriverStatistic
79
+	{
80
+		$stats = current($this->instance->getStats());
81
+		$stats['uptime'] = $stats['uptime'] ?? 0;
82
+		$stats['bytes'] = $stats['bytes'] ?? 0;
83
+		$stats['version'] = $stats['version'] ?? $this->instance->getVersion();
84
+
85
+		$date = (new DateTime())->setTimestamp(time() - $stats['uptime']);
86
+
87
+		return (new DriverStatistic())
88
+			->setData(implode(', ', array_keys($this->itemInstances)))
89
+			->setInfo(sprintf("The memcache daemon v%s is up since %s.\n For more information see RawData.", $stats['version'], $date->format(DATE_RFC2822)))
90
+			->setRawData($stats)
91
+			->setSize((int)$stats['bytes']);
92
+	}
93
+
94
+	/**
95
+	 * @return bool
96
+	 * @throws PhpfastcacheDriverException
97
+	 */
98
+	protected function driverConnect(): bool
99
+	{
100
+		$this->instance = new MemcachedSoftware();
101
+		$optPrefix = $this->getConfig()->getOptPrefix();
102
+		$this->instance->setOption(MemcachedSoftware::OPT_BINARY_PROTOCOL, true);
103
+
104
+		if ($optPrefix) {
105
+			$this->instance->setOption(MemcachedSoftware::OPT_PREFIX_KEY, $optPrefix);
106
+		}
107
+
108
+		foreach ($this->getConfig()->getServers() as $server) {
109
+			$connected = false;
110
+			/**
111
+			 * If path is provided we consider it as an UNIX Socket
112
+			 */
113
+			if (!empty($server['path'])) {
114
+				$connected = $this->instance->addServer($server['path'], 0);
115
+			} elseif (!empty($server['host'])) {
116
+				$connected = $this->instance->addServer($server['host'], $server['port']);
117
+			}
118
+			if (!empty($server['saslUser']) && !empty($server['saslPassword'])) {
119
+				$this->instance->setSaslAuthData($server['saslUser'], $server['saslPassword']);
120
+			}
121
+			if (!$connected) {
122
+				throw new PhpfastcacheDriverConnectException(
123
+					sprintf(
124
+						'Failed to connect to memcache host/path "%s".',
125
+						$server['host'] ?: $server['path'],
126
+					)
127
+				);
128
+			}
129
+		}
130
+
131
+		/**
132
+		 * Since Memcached does not throw
133
+		 * any error if not connected ...
134
+		 */
135
+		$version = $this->instance->getVersion();
136
+		if (!$version || $this->instance->getResultCode() !== MemcachedSoftware::RES_SUCCESS) {
137
+			throw new PhpfastcacheDriverException('Memcached seems to not be connected');
138
+		}
139
+		return true;
140
+	}
141
+
142
+	/**
143
+	 * @param ExtendedCacheItemInterface $item
144
+	 * @return ?array<string, mixed>
145
+	 */
146
+	protected function driverRead(ExtendedCacheItemInterface $item): ?array
147
+	{
148
+		$val = $this->instance->get($item->getKey());
149
+
150
+		if (empty($val) || !\is_array($val)) {
151
+			return null;
152
+		}
153
+
154
+		return $val;
155
+	}
156
+
157
+	/**
158
+	 * @param ExtendedCacheItemInterface ...$items
159
+	 * @return array<array<string, mixed>>
160
+	 */
161
+	protected function driverReadMultiple(ExtendedCacheItemInterface ...$items): array
162
+	{
163
+		$keys = $this->getKeys($items);
164
+
165
+		$val = $this->instance->getMulti($keys);
166
+
167
+		if (empty($val) || !\is_array($val)) {
168
+			return [];
169
+		}
170
+
171
+		return $val;
172
+	}
173
+
174
+
175
+	/**
176
+	 * @return array<string, mixed>
177
+	 * @throws PhpfastcacheInvalidArgumentException
178
+	 */
179
+	protected function driverReadAllKeys(string $pattern = ''): iterable
180
+	{
181
+		if ($pattern !== '') {
182
+			$this->throwUnsupportedDriverReadAllPattern('https://www.php.net/manual/en/memcached.getallkeys.php');
183
+		}
184
+		$keys = $this->instance->getAllKeys();
185
+
186
+		if (is_iterable($keys)) {
187
+			return $keys;
188
+		} else {
189
+			return [];
190
+		}
191
+	}
192
+
193
+	/**
194
+	 * @param ExtendedCacheItemInterface $item
195
+	 * @return bool
196
+	 * @throws PhpfastcacheInvalidArgumentException
197
+	 * @throws PhpfastcacheLogicException
198
+	 */
199
+	protected function driverWrite(ExtendedCacheItemInterface $item): bool
200
+	{
201
+
202
+		$ttl = $item->getExpirationDate()->getTimestamp() - time();
203
+
204
+		// Memcache will only allow a expiration timer less than 2592000 seconds,
205
+		// otherwise, it will assume you're giving it a UNIX timestamp.
206
+		if ($ttl > 2592000) {
207
+			$ttl = time() + $ttl;
208
+		}
209
+
210
+		return $this->instance->set($item->getKey(), $this->driverPreWrap($item), $ttl);
211
+	}
212
+
213
+	/**
214
+	 * @param string $key
215
+	 * @param string $encodedKey
216
+	 * @return bool
217
+	 */
218
+	protected function driverDelete(string $key, string $encodedKey): bool
219
+	{
220
+		return $this->instance->delete($key);
221
+	}
222
+
223
+	/**
224
+	 * @return bool
225
+	 */
226
+	protected function driverClear(): bool
227
+	{
228
+		return $this->instance->flush();
229
+	}
230 230
 }
Please login to merge, or discard this patch.
phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Memcached/Config.php 1 patch
Indentation   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -22,182 +22,182 @@
 block discarded – undo
22 22
 
23 23
 class Config extends ConfigurationOption
24 24
 {
25
-    /**
26
-     * @var array
27
-     *
28
-     * Multiple server can be added this way:
29
-     *       $cfg->setServers([
30
-     *         [
31
-     *           // If you use a UNIX socket set the host and port to null
32
-     *           'host' => '127.0.0.1',
33
-     *           //'path' => 'path/to/unix/socket',
34
-     *           'port' => 11211,
35
-     *           'saslUser' => null,
36
-     *           'saslPassword' => null,
37
-     *         ]
38
-     *      ]);
39
-     */
40
-
41
-    /** @var array<array<string, mixed>> */
42
-    protected array $servers = [];
43
-    protected string $host = '127.0.0.1';
44
-    protected int $port = 11211;
45
-    protected string $saslUser = '';
46
-    protected string $saslPassword = '';
47
-    protected string $optPrefix = '';
25
+	/**
26
+	 * @var array
27
+	 *
28
+	 * Multiple server can be added this way:
29
+	 *       $cfg->setServers([
30
+	 *         [
31
+	 *           // If you use a UNIX socket set the host and port to null
32
+	 *           'host' => '127.0.0.1',
33
+	 *           //'path' => 'path/to/unix/socket',
34
+	 *           'port' => 11211,
35
+	 *           'saslUser' => null,
36
+	 *           'saslPassword' => null,
37
+	 *         ]
38
+	 *      ]);
39
+	 */
40
+
41
+	/** @var array<array<string, mixed>> */
42
+	protected array $servers = [];
43
+	protected string $host = '127.0.0.1';
44
+	protected int $port = 11211;
45
+	protected string $saslUser = '';
46
+	protected string $saslPassword = '';
47
+	protected string $optPrefix = '';
48 48
 /**
49
-     * @return string
50
-     */
51
-    public function getSaslUser(): string
52
-    {
53
-        return $this->saslUser;
54
-    }
55
-
56
-    /**
57
-     * @param string $saslUser
58
-     * @return self
59
-     * @throws PhpfastcacheLogicException
60
-     */
61
-    public function setSaslUser(string $saslUser): static
62
-    {
63
-        return $this->setProperty('saslUser', $saslUser);
64
-    }
65
-
66
-    /**
67
-     * @return string
68
-     */
69
-    public function getSaslPassword(): string
70
-    {
71
-        return $this->saslPassword;
72
-    }
73
-
74
-    /**
75
-     * @param string $saslPassword
76
-     * @return self
77
-     * @throws PhpfastcacheLogicException
78
-     */
79
-    public function setSaslPassword(string $saslPassword): static
80
-    {
81
-        return $this->setProperty('saslPassword', $saslPassword);
82
-    }
83
-
84
-    /**
85
-     * @return array<array<string, mixed>>
86
-     */
87
-    public function getServers(): array
88
-    {
89
-        if (!count($this->servers)) {
90
-            return [
91
-                [
92
-                    'host' => $this->getHost(),
93
-                    'path' => $this->getPath(),
94
-                    'port' => $this->getPort(),
95
-                    'saslUser' => $this->getSaslUser() ?: null,
96
-                    'saslPassword' => $this->getSaslPassword() ?: null,
97
-                ],
98
-            ];
99
-        }
100
-
101
-        return $this->servers;
102
-    }
103
-
104
-    /**
105
-     * @param array<array<string, mixed>> $servers
106
-     * @return self
107
-     * @throws PhpfastcacheInvalidConfigurationException
108
-     * @throws PhpfastcacheLogicException
109
-     *
110
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
111
-     * @SuppressWarnings(PHPMD.NPathComplexity)
112
-     */
113
-    public function setServers(array $servers): static
114
-    {
115
-        foreach ($servers as $server) {
116
-            if ($diff = array_diff(array_keys($server), ['host', 'port', 'saslUser', 'saslPassword', 'path'])) {
117
-                throw new PhpfastcacheInvalidConfigurationException('Unknown keys for memcached server: ' . implode(', ', $diff));
118
-            }
119
-
120
-            if (!empty($server['host']) && !empty($server['path'])) {
121
-                throw new PhpfastcacheInvalidConfigurationException('Host and path cannot be simultaneous defined.');
122
-            }
123
-
124
-            if ((isset($server['host']) && !is_string($server['host'])) || (empty($server['path']) && empty($server['host']))) {
125
-                throw new PhpfastcacheInvalidConfigurationException('Host must be a valid string in "$server" configuration array if path is not defined');
126
-            }
127
-
128
-            if ((isset($server['path']) && !is_string($server['path'])) || (empty($server['host']) && empty($server['path']))) {
129
-                throw new PhpfastcacheInvalidConfigurationException('Path must be a valid string in "$server" configuration array if host is not defined');
130
-            }
131
-
132
-            if (!empty($server['host']) && (empty($server['port']) || !is_int($server['port']) || $server['port'] < 1)) {
133
-                throw new PhpfastcacheInvalidConfigurationException('Port must be a valid integer in "$server" configuration array');
134
-            }
135
-
136
-            if (!empty($server['port']) && !empty($server['path'])) {
137
-                throw new PhpfastcacheInvalidConfigurationException('Port should not be defined along with path');
138
-            }
139
-
140
-            if (!empty($server['saslUser']) && !empty($server['saslPassword']) && (!is_string($server['saslUser']) || !is_string($server['saslPassword']))) {
141
-                throw new PhpfastcacheInvalidConfigurationException('If provided, saslUser and saslPassword must be a string');
142
-            }
143
-        }
144
-
145
-        return $this->setProperty('servers', $servers);
146
-    }
147
-
148
-    /**
149
-     * @return string
150
-     */
151
-    public function getHost(): string
152
-    {
153
-        return $this->host;
154
-    }
155
-
156
-    /**
157
-     * @param string $host
158
-     * @return self
159
-     * @throws PhpfastcacheLogicException
160
-     */
161
-    public function setHost(string $host): static
162
-    {
163
-        return $this->setProperty('host', $host);
164
-    }
165
-
166
-    /**
167
-     * @return int
168
-     */
169
-    public function getPort(): int
170
-    {
171
-        return $this->port;
172
-    }
173
-
174
-    /**
175
-     * @param int $port
176
-     * @return Config
177
-     * @throws PhpfastcacheLogicException
178
-     */
179
-    public function setPort(int $port): static
180
-    {
181
-        return $this->setProperty('port', $port);
182
-    }
183
-
184
-    /**
185
-     * @return string
186
-     * @since 8.0.2
187
-     */
188
-    public function getOptPrefix(): string
189
-    {
190
-        return $this->optPrefix;
191
-    }
192
-
193
-    /**
194
-     * @param string $optPrefix
195
-     * @return Config
196
-     * @throws PhpfastcacheLogicException
197
-     * @since 8.0.2
198
-     */
199
-    public function setOptPrefix(string $optPrefix): Config
200
-    {
201
-        return $this->setProperty('optPrefix', trim($optPrefix));
202
-    }
49
+	 * @return string
50
+	 */
51
+	public function getSaslUser(): string
52
+	{
53
+		return $this->saslUser;
54
+	}
55
+
56
+	/**
57
+	 * @param string $saslUser
58
+	 * @return self
59
+	 * @throws PhpfastcacheLogicException
60
+	 */
61
+	public function setSaslUser(string $saslUser): static
62
+	{
63
+		return $this->setProperty('saslUser', $saslUser);
64
+	}
65
+
66
+	/**
67
+	 * @return string
68
+	 */
69
+	public function getSaslPassword(): string
70
+	{
71
+		return $this->saslPassword;
72
+	}
73
+
74
+	/**
75
+	 * @param string $saslPassword
76
+	 * @return self
77
+	 * @throws PhpfastcacheLogicException
78
+	 */
79
+	public function setSaslPassword(string $saslPassword): static
80
+	{
81
+		return $this->setProperty('saslPassword', $saslPassword);
82
+	}
83
+
84
+	/**
85
+	 * @return array<array<string, mixed>>
86
+	 */
87
+	public function getServers(): array
88
+	{
89
+		if (!count($this->servers)) {
90
+			return [
91
+				[
92
+					'host' => $this->getHost(),
93
+					'path' => $this->getPath(),
94
+					'port' => $this->getPort(),
95
+					'saslUser' => $this->getSaslUser() ?: null,
96
+					'saslPassword' => $this->getSaslPassword() ?: null,
97
+				],
98
+			];
99
+		}
100
+
101
+		return $this->servers;
102
+	}
103
+
104
+	/**
105
+	 * @param array<array<string, mixed>> $servers
106
+	 * @return self
107
+	 * @throws PhpfastcacheInvalidConfigurationException
108
+	 * @throws PhpfastcacheLogicException
109
+	 *
110
+	 * @SuppressWarnings(PHPMD.CyclomaticComplexity)
111
+	 * @SuppressWarnings(PHPMD.NPathComplexity)
112
+	 */
113
+	public function setServers(array $servers): static
114
+	{
115
+		foreach ($servers as $server) {
116
+			if ($diff = array_diff(array_keys($server), ['host', 'port', 'saslUser', 'saslPassword', 'path'])) {
117
+				throw new PhpfastcacheInvalidConfigurationException('Unknown keys for memcached server: ' . implode(', ', $diff));
118
+			}
119
+
120
+			if (!empty($server['host']) && !empty($server['path'])) {
121
+				throw new PhpfastcacheInvalidConfigurationException('Host and path cannot be simultaneous defined.');
122
+			}
123
+
124
+			if ((isset($server['host']) && !is_string($server['host'])) || (empty($server['path']) && empty($server['host']))) {
125
+				throw new PhpfastcacheInvalidConfigurationException('Host must be a valid string in "$server" configuration array if path is not defined');
126
+			}
127
+
128
+			if ((isset($server['path']) && !is_string($server['path'])) || (empty($server['host']) && empty($server['path']))) {
129
+				throw new PhpfastcacheInvalidConfigurationException('Path must be a valid string in "$server" configuration array if host is not defined');
130
+			}
131
+
132
+			if (!empty($server['host']) && (empty($server['port']) || !is_int($server['port']) || $server['port'] < 1)) {
133
+				throw new PhpfastcacheInvalidConfigurationException('Port must be a valid integer in "$server" configuration array');
134
+			}
135
+
136
+			if (!empty($server['port']) && !empty($server['path'])) {
137
+				throw new PhpfastcacheInvalidConfigurationException('Port should not be defined along with path');
138
+			}
139
+
140
+			if (!empty($server['saslUser']) && !empty($server['saslPassword']) && (!is_string($server['saslUser']) || !is_string($server['saslPassword']))) {
141
+				throw new PhpfastcacheInvalidConfigurationException('If provided, saslUser and saslPassword must be a string');
142
+			}
143
+		}
144
+
145
+		return $this->setProperty('servers', $servers);
146
+	}
147
+
148
+	/**
149
+	 * @return string
150
+	 */
151
+	public function getHost(): string
152
+	{
153
+		return $this->host;
154
+	}
155
+
156
+	/**
157
+	 * @param string $host
158
+	 * @return self
159
+	 * @throws PhpfastcacheLogicException
160
+	 */
161
+	public function setHost(string $host): static
162
+	{
163
+		return $this->setProperty('host', $host);
164
+	}
165
+
166
+	/**
167
+	 * @return int
168
+	 */
169
+	public function getPort(): int
170
+	{
171
+		return $this->port;
172
+	}
173
+
174
+	/**
175
+	 * @param int $port
176
+	 * @return Config
177
+	 * @throws PhpfastcacheLogicException
178
+	 */
179
+	public function setPort(int $port): static
180
+	{
181
+		return $this->setProperty('port', $port);
182
+	}
183
+
184
+	/**
185
+	 * @return string
186
+	 * @since 8.0.2
187
+	 */
188
+	public function getOptPrefix(): string
189
+	{
190
+		return $this->optPrefix;
191
+	}
192
+
193
+	/**
194
+	 * @param string $optPrefix
195
+	 * @return Config
196
+	 * @throws PhpfastcacheLogicException
197
+	 * @since 8.0.2
198
+	 */
199
+	public function setOptPrefix(string $optPrefix): Config
200
+	{
201
+		return $this->setProperty('optPrefix', trim($optPrefix));
202
+	}
203 203
 }
Please login to merge, or discard this patch.