> -----Original Message----- > From: [email protected] > [mailto:[email protected]] On > Behalf Of Bradley Giesbrecht > Sent: Tuesday, August 17, 2010 10:12 PM > To: [email protected] () > Subject: Re: Tangential Topic: MacPorts PHP code broken by OS > X update? > > > On Aug 17, 2010, at 1:42 PM, Scott Haneda wrote: > > > On Aug 17, 2010, at 9:54 AM, "John Korchok" > <[email protected]> wrote: > > > > I am using MacPorts PHP 5.3 on Leopard. I have > lots of code that was working perfectly fine until I applied > the 2010-004 security update (among others) this past > weekend. Now I am getting: > > "Fatal error: Cannot redeclare class > EmployeeTable in > /Library/WebServer/Documents/profile/EmployeeTable.php on line 4" > > after signing in. None of the PHP has been changed. > > > Maybe it was always this way and certain conditions are > causing this now. > > Can you wrap the EmployeeTable class in an if > (class_exists(...)) type of condition, and print or log both > sides of the condition, or move to using include_once/require_once? > > > Good thought. Write some die/vardump function and step > through your code with "mydie(get_defined_classes());". > > Where mydie could look like: > > if ( !function_exists ( "mydie" ) ) { > > function mydie ( ) { $this_file = __FILE__ ; $this_line = > __LINE__ ; $buffer = array ( ) ; $trace_calls = "" ; > > ob_start ( ) ; > debug_print_backtrace ( ) ; > $buffer[ "0" ] = ob_get_contents ( ) ; ob_end_clean ( ) ; > > ksort ( $buffer[ "0" ] ) ; > > $trace_calls = implode ( ")\n\tcalled at [" , $buffer[ "0" ] ) ; > > unset ( $buffer ) ; > > echo "<pre>function " . __FUNCTION__ . " lives > here:{$this_file}:{$this_line}</pre>" ; echo ( "<pre>" . > print_r( func_get_args ( ) , true ) . "</pre>" ) ; if ( > $trace_calls == "" ) $trace_calls = "No functions were > called." ; echo ( "<pre>" . $trace_calls . "</pre>" ) ; die ; > > } > } > > // Brad > Thank you for the tips. I had already used require_once exclusively when I built the code, knowing that this could be a problem. That's why I was baffled that a security update could trip such an error message. However, the if(!class_exists'ClassName') construct solves it, so I'll give up wondering why...
John _______________________________________________ macports-users mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
