On Fri, 2007-09-21 at 16:18 +0100, Ben wrote:
> It really depends on your situation. 
> We are an ISP hosting lots of website. Upgrading from 4 to 5 means a lot of 
> sites will have trouble. 
> Personally I have some problem of upgrading from 4 to 5. 
> 
> The below codes work on 4:
> 
> include("DB/DataObjects.php");
> $pro = DB_DataObject::factory('Product');
> $pro->find();
> while($pro->fetch())
>    $allPro[] = $pro;  
> 
> But on 5, it has to be modified to
> include("DB/DataObjects.php");
> $pro = DB_DataObject::factory('Product');
> $pro->find();
> while($pro->fetch())
>    $allPro[] = clone $pro;  
> 
> The above is only an example. So upgrading to 5 is not an option for us.

You might want to start a migration path for your code in the near
future. i would suggest something like the following:

<?php

# File: myLib.php

function &myClone( &$someObject )
{
    static $init = true;

    if( $init )
    {
        if( (int)phpversion() < 5 )
        {
            require_once( 'php4Compat.php' );
        }
        else
        {
            require_once( 'php5Compat.php' );
        }
    }

    $clone = &compat_myClone( $someObject );
    return $clone;
}

# File: php4Compat.php

function &compat_myClone( &$someObject )
{
    $clone = $someObject;
    return $clone;
}

# File: php5Compat.php

function &compat_myClone( &$someObject )
{
    $clone = clone $someObject;
    return $clone;
}

?>

This way you can still use PHP4 while providing the necessary changes
for PHP5 before fully switching over.

Cheers,
Rob.

Ps. I used references so PHP4 wouldn't create copies at every
    function call :)
-- 
...........................................................
SwarmBuy.com - http://www.swarmbuy.com

    Leveraging the buying power of the masses!
...........................................................

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to