> -----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

Reply via email to