### Steps to reproduce the issue
Compile component with add to sales server set to yes in php 8.x
### Expected result
Compile succesfull.
### Actual result
Fatal error on parse_str function.
### System information (as much as possible)
- OS Name & Version:
- MySql Version:
- Apache Version:
- PHP Version:
- Joomla Version:
- JCB Version:
- Browser:
### Additional comments
FILE: /libraries/jcb_powers/VDM.Joomla/src/Componentbuilder/Server/Ftp.php
private function getClient(): ?FtpClient
{
// make sure we have a string and it is not default or empty
if (StringHelper::check($this->details->signature))
{
// turn into variables
$signature = [];
parse_str((string) $this->details->signature, $signature);
// set options
if (isset($signature['options']) && ArrayHelper::check($signature['options']))
{
foreach ($options as $o__p0t1on => $vAln3)
{
if ('timeout' === $o__p0t1on)
{
$options[$o__p0t1on] = (int) $vAln3;
}
if ('type' === $o__p0t1on)
{
$options[$o__p0t1on] = (string) $vAln3;
}
}
}
else
{
$options = [];
}
// get ftp object
if (isset($signature['host']) && $signature['host'] != 'HOSTNAME' &&
isset($signature['port']) && $signature['port'] != 'PORT_INT' &&
isset($signature['username']) && $signature['username'] != 'user@name.com' &&
isset($signature['password']) && $signature['password'] != 'password')
{
// this is a singleton
return FtpClient::getInstance($host, $port, $options, $username, $password);
}
}
return null;
}
Fixed it by editing the function like this:
```
private function getClient(): ?FtpClient
{
// make sure we have a string and it is not default or empty
if (StringHelper::check($this->details->signature))
{
// turn into variables
$signature = [];
parse_str((string) $this->details->signature, $signature);
// set options
if (isset($signature['options']) && ArrayHelper::check($signature['options']))
{
foreach ($options as $o__p0t1on => $vAln3)
{
if ('timeout' === $o__p0t1on)
{
$options[$o__p0t1on] = (int) $vAln3;
}
if ('type' === $o__p0t1on)
{
$options[$o__p0t1on] = (string) $vAln3;
}
}
}
else
{
$options = [];
}
// get ftp object
if (isset($signature['host']) && $signature['host'] != 'HOSTNAME' &&
isset($signature['port']) && $signature['port'] != 'PORT_INT' &&
isset($signature['username']) && $signature['username'] != 'user@name.com' &&
isset($signature['password']) && $signature['password'] != 'password')
{
// this is a singleton
return FtpClient::getInstance($host, $port, $options, $username, $password);
}
}
return null;
}
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Steps to reproduce the issue
Compile component with add to sales server set to yes in php 8.x
Expected result
Compile succesfull.
Actual result
Fatal error on parse_str function.
System information (as much as possible)
Additional comments
FILE: /libraries/jcb_powers/VDM.Joomla/src/Componentbuilder/Server/Ftp.php
Fixed it by editing the function like this: