2013-05-19 2 views
1

내가 PHP 5.4.10로 MAMP를 사용하고에서만 작동하고 난 다음 MWE에 문제가 있습니다 : 첫 번째로드에PHP 형질 방법은 첫 번째로드

<?php 
trait T { 
    public function hello() { echo 'hello'; } 
} 
class A { 
    use T; 
} 
$a = new A(); 
$a->hello(); 
?> 

페이지 쇼 '안녕하세요'를. 그러나 새로 고침을하면 오류 500이 발생합니다.

파일을 수정 (예 : 어딘가에 빈 줄을 추가)하고 다시 새로 고침하면 'hello'가 다시 표시됩니다. 새로 고침을 다시하고 오류 500이 다시 나타납니다.

이것이 어디에서 오는지도 모릅니다.

업데이트 : 나는이 작업을 반복 할 때 PHP Fatal error: Call to undefined method A::0? ()

합니다 (0 항상 같은 이름을 가지고 있지 않습니다

이 (로그인 아파치 오류에 아무것도) 로그인하지 않는 PHP 오류에 표시).

+1

오류 로그에 오류 메시지가 있습니까? – MitMaro

+0

오류 로그에 어떻게 액세스합니까? – arnaudrg

+0

'오류 로그에 어떻게 액세스합니까? ' – hek2mgl

답변

1

XCache를가 (또는 적어도 XCache를)를 캐싱을 해제 시도하고 내가 같은 문제가 있었다

0

다시 시도하고 @Leon Weemen 덕분에 내가 XCache를에 초점을 맞추고, 여기에 문제가 될 수 있습니다. this bug (XCache 3.0.1에서 수정 됨)이 문제의 원인이되는 것을 발견했습니다 (XCache의 버전은 2.0.0이었습니다). 그들은 php.ini에서 다음 값들을 설정하여 문제를 해결할 것을 제안합니다;

xcache.mmap_path = "/tmp/xcache" 
xcache.readonly_protection = on 

그러나이 해결 방법으로는이 문제가 해결되지 않습니다. XCache를 비활성화 할 수 있었던 유일한 방법은 ini_set() PHP 메서드를 사용하는 것이 었습니다. 내 응용 프로그램을 시작하자마자 다음 코드 조각이 문제를 해결하고 XCache가 업데이트되자 마자 바로 사용할 수 있습니다.

try{ 
    $xCache = new ReflectionExtension('xcache'); 
    if(version_compare($xCache->getVersion(), '3.0.1', '<')){ 
     ini_set('xcache.cacher', 0); 
    } 
} catch(ReflectionException $e){ 
    // xCache not installed - everything should work fine 
} 
관련 문제