omskrive php3 filer til php5 eller ....
Jeg har netop opgraderet et par strømslugende og larmende maskiner til én lille med Atom 330 processor på. I den sammenhæng er jeg gået fra Redhat 7.3 til en Debian 9.x server. Jeg regnede også med at mine php3 filer ville virke under php5, men det gør de ikke, da der skulle være lavet om på hvordan man kan lave "klasser". Jeg har vel ca. 50 filer jeg skal lave om før det vil virke, men kan det betale sig?
Kan jeg installere php3 på maskinen som cgi sammen med php5?
- Log in to post comments
Kommentarer5
Re: omskrive php3 filer til php5 eller ....
Tja, du skulle vist nok kunne installere PHP3, men jeg vil nok overveje at portere det til PHP5..
PHP3 blev afløst for over 9 år siden.. Så man må forvente der er temmeligt mange bugs i de gamle versioner, og det er nok heller ikke så hurtigt..
Men det skulle nok kunne lade sig gøre:
http://www.bluereef.net/support/extensions/development/phpinstall3.html
http://www.google.com/search?q=php3+as+cgi
Re: omskrive php3 filer til php5 eller ....
Det smarteste vil helt klart være at opgradere til PHP5. Kan du pastebin'e et eksempel på noget kode der ikke virker, sammen med fejlmeddelelsen?
Re: omskrive php3 filer til php5 eller ....
Kan godt huske der er noget med ændrede måder at lave og benytte klasser på, men ikke helt hvad.
Men det er nu rimeligt simpelt nu om dage:
<?php
Class TestClass {
var $k = 2; //instans variabel
function TestClass() { //Constructor
}
function setK($tmp) {
$this->k = $tmp;
}
function printK() {
echo $this->k;
}
}
$testobj = new TestClass();
echo $testobj->k; // udskriver 2
$testobj->setK(4);
$testobj->printK(); // udskriver 4
?>
Bare lige for et hurtigt eksempel på klasser i PHP5, hvis du ikke er så kendt med det.. Der tages højde for fejl. Scriptet er ikke testet :D
#3 Det der er ikke PHP5, det
#3
Det der er ikke PHP5, det er PHP4(selvom det også burde virke i PHP3, og såmend også virker i PHP5).
i PHP har du access-keywords med også, samt __construct() og __destruct() som henholdsvis konstruktor og destruktor metoder.
<?php
class TestClass {
private $k = 2; //instans variabel
public function __construct() { //Constructor
}
public function setK($tmp) {
$this->k = $tmp;
}
public function printK() {
$this->k;
}
}
$testobj = new TestClass();
$testobj->printK(); //udskriver 2. vi kan ikke echo'e $testobj->k direkte fordi den er private. det ville vi kunne hvis den var public.
$testobj->setK(4);
$testobj->printK(); // udskriver 4
?>
Re: omskrive php3 filer til php5 eller ....
Hmm, jeg har alternativt tænkt i virtualiseringsbaner men jeg ved ikke lige hvordan man gør det. Kunne være Debian som base og en CentOS som virtualiseret system. Det virker i hvert fald på det, men det kører også php4.
En fejlmeddelelse kan se sådan ud :-(
Fatal error: Cannot access empty property in /var/www/service/include/session.php on line 208
Og det ser sådan ud:
function loadOptions()
{
$res=$this->DB_OBJECT->query("SELECT OPTION, VALUE FROM SITE_OPTIONS");
if (DB::isError($res))
return false;
while ($row=$res->fetchRow(DB_FETCHMODE_ASSOC))
$this->site_options->$row['OPTION']=$row['VALUE'];
if (!$this->site_options->language)
$this->site_options->language='EN';
}