Commit Graph

42 Commits

Author SHA1 Message Date
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
Ferdinand Thiessen e0ba4d71b6 chore: add missing Override attribute to OC
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:27 +02:00
Martin 2a2f42e781 feat: Add memcache_customprefix
Signed-off-by: Martin <31348196+Earl0fPudding@users.noreply.github.com>
2026-03-04 00:19:19 +01:00
Carl Schwan 7b6078875b refactor: Run rector on lib/private
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Ferdinand Thiessen 15229e0b4e fix(Memcache): use different cache key when in maintenance mode
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-12-01 14:43:23 +01:00
Ferdinand Thiessen b4d19748fa fix(Memcache): ensure global prefix depends on enabled apps
- ensure the prefix is changed when an app is (dis)enabled
- ensure the app ids are included in the hash instead of only the
  version numbers
- ensure hash is deterministic by always use the same order.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 16:18:24 +01:00
Marcel Müller 34a085d3bf fix(cache): Ensure unique global prefix per instanceid
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-09-28 17:59:12 +02:00
Ferdinand Thiessen 112178d3a0 fix: typos in cache and app config
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 18:35:54 +02:00
Ferdinand Thiessen 0ef58c96ab refactor(Memcache\Factory): move prefix generation to the factory class
This removes a circular dependency between AppConfig and cache factory.
When a cache in the app config is used.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 13:24:18 +02:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
John Molakvoæ 2d5060d1e3 Merge pull request #46151 from nextcloud/enh/do-not-enforce-cache-for-cli
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (8.1, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (8.1, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
2024-10-29 15:28:47 +01:00
provokateurin 9836e9b164 chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Robin Appelman da59fd4389 fix: misc code fixes around db sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-09 16:59:59 +02:00
Robin Appelman c58bdbf378 fix: delay calculating global cache prefix untill a cache is created
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:18:52 +02:00
MichaIng 89cd3b4f88 feat(cache): CLI should not fail if APCu is not available
but fallback to NullCache. This can be the case if APCu is used without apc.enable_cli=1. APCu however runs within the PHP instance and hence cannot be shared between CLI and web or used as distributed cache. The CLI call can hence only create or invalidate entries for itself. For short-living CLI calls, this is theoretically a downsides regarding performance and resource usage, and Nextcloud must not have any issues using the dummy NullCache instead of an isolated freshly created and destroyed APCu instance.

This partly reverts https://github.com/nextcloud/server/pull/25770. The fallback was removed, because CLI calls started to hang after https://github.com/nextcloud/server/pull/25440. The reason however was not that a cache is generally required for CLI calls, but because the previously logged warning invoked the user backend, which invoked again the caching backend, causing a loop.

This commit re-adds the fallback without logging a warning, and for APCu only. For mentioned reasons, it is okay to fallback to NullCache silently. If Redis or memcached are configured but not available, then the web UI would fail as well, and it makes sense to abort and inform CLI calls as well then.

The motivation is to make apc.enable_cli=1 optional, and that hence the documentation about it can be removed. We should not enforce admins to enable APCu for CLI calls, which is reasonably disabled by default. This also reduces requirements for hosting providers to support Nextcloud.

Signed-off-by: MichaIng <micha@dietpi.com>
2024-08-01 10:02:44 +02:00
Andy Scherzinger dae7c159f7 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Joas Schilling aa5f037af7 chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Christoph Wurst ff672b11e2 feat: Add factory method for in-memory caches
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-10-11 13:37:22 +02:00
Christoph Wurst fac05bce07 chore: Drop unused \OC\Memcache\Factory::createLowLatency
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-10-11 09:40:27 +02:00
Joas Schilling 93f0399a92 fix(memcache): Fix comparison of Memcache configs to classes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-16 16:05:50 +02:00
Carl Schwan 7d272c54d0 Add a built-in profiler inside Nextcloud
The webui is provided by a seperate application named profiler

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-04-04 10:28:26 +02:00
Côme Chilliet 6be7aa112f Migrate from ILogger to LoggerInterface in lib/private
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-24 16:21:25 +01:00
Joas Schilling 168c673755 Allow to log DB, redis and LDAP requests into files
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-12-01 22:33:41 +01:00
MichaIng 0304eea58d Fix in locking cache check
The intention obviously was to check whether $lockingCacheClass is defined, and existing class, and available. It was however checked whether the $distributedCacheClass is an existing class, which would have caused an exception already in the previous distributed cache check.

Signed-off-by: MichaIng <micha@dietpi.com>
2021-07-05 23:11:13 +02:00
Gary Kim b78f3a57d1 Migrate HintException to OCP
Signed-off-by: Gary Kim <gary@garykim.dev>
2021-06-30 15:28:02 -04:00
John Molakvoæ (skjnldsv) 215aef3cbd Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Richard Steinmetz 0f949eaeb1 Don't allow executing cli if cache backend is unavailable
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-05-26 11:02:26 +02:00
Christoph Wurst 0c5adaddf8 Drop \OC\Memcache\Factory::create
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-16 11:43:05 +01:00
Christoph Wurst d89a75be0b Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
Christoph Wurst cb057829f7 Update license headers for 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +02:00
Christoph Wurst 28f8eb5dba Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02:00
Christoph Wurst caff1023ea Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst 5bf3d1bb38 Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Morris Jobke dde5353f98 Properly provide local memcache check to ICacheFactory
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-13 18:18:04 +01:00
Morris Jobke eb51f06a3b Use ::class statement instead of string
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-29 12:03:47 +01:00
Roeland Jago Douma c5fcfb0709 Made the cache factory strict
* Return types
* Typehints
* made strict
* fix tests

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-16 21:58:20 +01:00
Morris Jobke 0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Joas Schilling 57c65c3ec6 Make sure old instances don't break
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-01-05 11:57:18 +01:00
Joas Schilling 0215b004da Update with robin 2016-07-21 18:13:58 +02:00
Joas Schilling ba87db3fcc Fix others 2016-07-21 18:13:57 +02:00
Lukas Reschke aba539703c Update license headers 2016-05-26 19:57:24 +02:00
Roeland Jago Douma f3d05486fd Move \OC\Memcache to PSR-4 2016-04-18 08:21:50 +02:00