Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI3 version and PHP 8+ major issue. #3913

Open
odiea opened this issue Dec 29, 2023 · 6 comments
Open

CI3 version and PHP 8+ major issue. #3913

odiea opened this issue Dec 29, 2023 · 6 comments

Comments

@odiea
Copy link
Collaborator

odiea commented Dec 29, 2023

If someone could figure this issue out then CI3 would be compatible with at least PHP 8 with minor changes.
ERROR - 2023-12-29 11:13:34 --> Severity: error --> Exception: Class Attribute already exists and doesn't extend CI_Model C:\wamp64\www\goodmaster\vendor\codeigniter\framework\system\core\Loader.php 353

@jekkos
Copy link
Member

jekkos commented Jan 2, 2024

I see currently we are using 3.1.11 in master, while 3.1.12 claims to have improved PHP8 support. Did you upgrade the composer dependency?

@odiea
Copy link
Collaborator Author

odiea commented Jan 2, 2024

No I did not want to rebuild my branch. It appears that 3.3.9 also has not been updated to 3.1.12

@jekkos
Copy link
Member

jekkos commented Jan 2, 2024

It would be a matter of running a composer install after bumping the minor version in the json file, should not give you too much trouble.

@jekkos
Copy link
Member

jekkos commented Jan 2, 2024

I mean upgrading the dependency itself should be easy. After looking at the changelog there might be other things to look into. The custom SameSite cookie flag might interfere with CSRF functionality that was added in 3.1.12.

@meierrom
Copy link

meierrom commented Jan 3, 2024

If someone could figure this issue out then CI3 would be compatible with at least PHP 8 with minor changes. ERROR - 2023-12-29 11:13:34 --> Severity: error --> Exception: Class Attribute already exists and doesn't extend CI_Model C:\wamp64\www\goodmaster\vendor\codeigniter\framework\system\core\Loader.php 353

I spent a few days testing this a few months ago.

The dirty hack here is to simply duplicate the Attribute model, e.g. Attribute2.php including renaming the class to Attribute2. Then add this "new" module to autoload.php.

Then simply point to this new model instead of the old one, e.g.

//$definition_names = $this->Attribute->get_definitions_by_flags(Attribute::SHOW_IN_ITEMS);
$definition_names = $this->Attribute2->get_definitions_by_flags(Attribute2::SHOW_IN_ITEMS);

Please keep in mind that OSPOS uses numerous very old libraries that can't be used with php8. I'll take you through when you get there.

Kind regards,
Roman

@odiea
Copy link
Collaborator Author

odiea commented Jan 3, 2024

thanks I already did that but changed it to Attribute1. LOL

@jekkos jekkos added the wontfix label May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants