Skip to content

feat: PHP 8.4 compatibility and owncloud.online design#41503

Closed
BWTECH-github wants to merge 3 commits intoowncloud:masterfrom
BWTECH-github:feature/php8.4-with-owncloud.online-design
Closed

feat: PHP 8.4 compatibility and owncloud.online design#41503
BWTECH-github wants to merge 3 commits intoowncloud:masterfrom
BWTECH-github:feature/php8.4-with-owncloud.online-design

Conversation

@BWTECH-github
Copy link

Summary

This PR brings full PHP 8.4 compatibility to ownCloud Core along with a custom design theme for owncloud.online.

Changes

PHP 8.4 Compatibility

  • Updated composer.json to require PHP >= 8.4
  • Fixed deprecated implicit nullable type declarations across the codebase
  • Fixed str_replace() type errors (e.g. LDAP port as string)
  • Fixed explode() and other string functions receiving null instead of string
  • Updated return types and parameter types for PHP 8.4 strict typing
  • Resolved Deprecated: Creation of dynamic property warnings
  • Fixed ArrayAccess offset type compatibility
  • Updated CI/CD workflows for PHP 8.4

owncloud.online Design

  • Custom login page design with owncloud.online branding
  • Updated color scheme and styling
  • Design preview included: core/img/design-preview.png

LDAP Test Fix

Testing

  • All PHP 8.4 deprecation warnings resolved
  • Composer dependency check passes with PHP >= 8.4

Stats

  • 300+ files changed
  • 3 commits

Maintained by BW.Tech

- Updated PHP codebase for full PHP 8.4 compatibility
- Resolved deprecation warnings and breaking changes
- Integrated owncloud.online custom design theme
- Updated README with owncloud.online branding
…ibility

- getLdapPort():int → getLdapPortAsString():string
- Fixes str_replace() type error in LDAP acceptance tests
- Based on owncloud#41500
@update-docs
Copy link

update-docs bot commented Mar 16, 2026

Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a changelog item based on your changes.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Contributor

@phil-davis phil-davis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few things that I quickly noticed.
This will need a lot of detailed looking at the diffs to sort it out. I suppose "stuff happened" in the merge conflict resolution...

@@ -348,6 +348,7 @@ Feature: edit users
When user "subadmin" changes the display name of user "Alice" to "Alice Wonderland" using the provisioning API
Then the OCS status code should be "100"
And the HTTP status code should be "200"
| displayname | Alice Wonderland |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this trying to achieve?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was an accidental artifact from our merge process — the DataTable line doesn't belong there. We'll remove it.

@@ -334,6 +334,7 @@ Feature: edit users
And user "subadmin" changes the display name of user "Alice" to "Alice Wonderland" using the provisioning API
Then the OCS status code should be "200"
And the HTTP status code should be "200"
| displayname | Alice Wonderland |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this trying to achieve?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was an accidental artifact from our merge process — the DataTable line doesn't belong there. We'll remove it.

Comment on lines -30 to +29
DEFAULT_PHP_VERSION = "8.3"
DEFAULT_PHP_VERSION = "7.4"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why changing back to PHP 7.4?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, thanks! That was an unintended regression — it should be 8.4 instead of 7.4. We'll fix this.

Comment on lines +98 to +103
"symfony/console": "^7.3",
"symfony/event-dispatcher": "^7.3",
"symfony/process": "^7.3",
"symfony/routing": "^7.3",
"symfony/translation": "^7.3",
"symfony/mailer": "^7.3"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why going backwards with the minor version requirement?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right - no reason to go backwards here. Symfony 7.4 is the current LTS with support until 2028, while 7.3 is already unmaintained. We'll bump it back to ^7.4.

@@ -1,14 +1,14 @@
# ownCloud Core
# ownCloud.online
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that the README chnages are wanted.

@DeepDiver1975
Copy link
Member

Thank you @BWTECH-github

For the time being we are aiming for php8.3 only. Once we have a stable code base we can think about adding support for 8.4 and even 8.5

@DeepDiver1975
Copy link
Member

Commits are mentioning forking ownCloud/core. I assume this PR is targeting the wrong repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants