Fatal error: Declaration of socialxeLibrary::set($value) must be compatible with BaseObject::set($key, $val) in /home/modules/socialxe/socialxe.library.php on line 220

 

안녕하세요!

 

라이믹스 2.0.14 버전 이용중이며 소셜 xe는 라이믹스 1.9버전에서 잘 이용하고 있던 파일입니다^^

 

그런데 설치하고 로그인 버튼을 누르니 막상 위의 에러가 떠서 고민중입니다.

 

socialxe.library.php 220 번째 줄 부터 보면 

 

function set($value)
        {
            if($value['token'])
            {
                $this->token = $value['token'];
            }
            
            if($value['profile'])
            {
                $this->profile = $value['profile'];
            }
        }
        
        function get()
        {
            return array(
                'service' => $this->service,
                'token' => $this->token,
                'profile' => $this->profile,
            );
        }

 

이렇게 끝이 납니다.

이걸 삭제하고 나면 에러는 안뜨고 카카오로그인 같은경우는 로그인 창까지 뜨는걸 봐서 (당연히 로그인은 불가)

이 구문에서 잡아내면 해결될것 같아 이렇게 올려봅니다.

 

도움 주시면 감사하겠습니다 ㅠ_ㅠ

 

  • profile

    함수 내용이 문제가 아니라 함수 선언 자체가 잘못되었습니다.

     

    BaseObject를 상속받은 클래스이므로 set() 메소드는 반드시 $key, $val 이렇게 2개의 파라미터를 받아야 합니다. $value 하나만 받으니까 에러가 나는 것입니다. PHP 8에서는 부모 클래스의 메소드 구조를 변경하는 것이 허락되지 않습니다. 2개의 파라미터를 받도록 함수 첫 줄을 수정하고, 그 함수를 호출하는 곳도 모두 찾아서 수정해야 할 수 있습니다.