Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

PHP 8 Compatibitility 24 Mar 2022 03:03 #15930

There are going to be a few PHP 8 incompatibilties - so this is probably the place to note them down.
Please add to this list if you find any ... JCook is not being developed anymore - so we need to help each other to keep our older websites running.

If you upgrade to PHP 8 and your whole website goes down... its is probably line 384 in libraries/jdom.php (which is loaded for eevry page).

If you swicth on the Joomla Degug mode, you will see this error...
"count(): Argument #1 ($value) must be of type Countable|array, null given"
This is because a emplty variable, a non-array, is being used with the count function.

In libraries/jdom edit file jdom.php line 384

Change
else if (($i !== null) && (count($args) > $i))

to
else if ($i !== null)
Just call me Chris :)

Please Log in or Create an account to join the conversation.

Last edit: by organicwebs.

PHP 8 Compatibitility 24 Mar 2022 03:14 #15931

Now, after this first hurdle... when you go to create a New item, you'll get the same error. This is another bug in the item controller.

In /public_html/administrator/components/com_yourcomponent/classes/controller/item.php Line 240

Change:
if (!count($cid))

To
if (empty($cid))
Just call me Chris :)
The following user(s) said Thank You: jonathanbell

Please Log in or Create an account to join the conversation.

PHP 8 Compatibitility 30 May 2022 12:55 #15940

Good work :)

Please Log in or Create an account to join the conversation.

PHP 8 Compatibitility 04 Jan 2023 10:31 #15944

  • liubov
  • liubov's Avatar
  • Offline
  • Elite Member
  • Elite Member
  • (=) 10 mn and it's ready!
  • Posts: 279
  • Thank you received: 36
Hi Chris,
Thanks a lot for this.
I've also a warning (error report : Dev) in the next line 385.
Did you change anything, or never mind ?
if ($args[$i] !== null)
Warning: Trying to access array offset on value of type null in /home2/user_xxx/public_html/my_site/libraries/jdom/dom.php on line 385
change to
if (!empty($args[$i]) )

Please Log in or Create an account to join the conversation.

Last edit: by liubov.

PHP 8 Compatibitility 04 Jan 2023 17:10 #15945

  • liubov
  • liubov's Avatar
  • Offline
  • Elite Member
  • Elite Member
  • (=) 10 mn and it's ready!
  • Posts: 279
  • Thank you received: 36
To be continue...
Please find below a few code corrections to upgrade PHP8 version with your J-Cook component:

libraries/jdom/dom.php:384
else if ($i !== null) 
        if (!empty($args[$i]) )

administrator/components/com_mycomponent/classes/controller/item.php:240
if (empty($cid))

administrator/components/com_mycomponent/classes/model/list.php:328
protected function belongsToMany($name, $foreignModelClass, $localKey, $foreignKey, $pivot, $pivotLocalKey, $pivotForeignKey, $selectFields = array(), $raw = false)

administrator/components/com_mycomponent/helpers/menu.php:61
public static function addSubmenu($name, $view, $layout)

Please Log in or Create an account to join the conversation.

Last edit: by liubov.
  • Page:
  • 1
Time to create page: 0.062 seconds

For starters it's just so easy to design an app in a way that I'm used to i.e. database first then views followed by customization. The fork system is pure brilliance from a developer standpoint as I can override things and still add and update my projects with minimal effort! Truly amazing to be able to build components in Joomla using incremental refinement without having to do everything by hand. Thanks for the great tool! I am so much more productive now than ever and I can't imagine building components any other way!!!!
Dave (Forum)

Get Started