[PHPOffice] PHP 8.0 에서 PHPOffice 엑셀저장이 안되는 경우

PHP 7.X에서 잘 되는 것이 엑셀파일 저장시 에러가 나서 안되는 경우인데.


smartadmin을 사용하는 경우 아래 3개 파일을 고쳐 줘야 하는데 소스의 문제라기 보다 클래스 함수의 반환 타입을 명시적으로 지정해 줘야 한다.


myclabs/php-enum/src/Enum.php

public function jsonSerialize()

{

    return $this->getValue();

}

를 아래처럼 mixed로 반환타입을 지정해야 한다 

public function jsonSerialize() : mixed

{

    return $this->getValue();

}


phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php

public function getSheetCount()

{

    return count($this->workSheetCollection);

}

를 아래처럼 int로 반환타입을 지정해야 한다 

public function getSheetCount() : int

{

    return count($this->workSheetCollection);

}

phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Iterator.php

public function valid()

{

    return $this->position < $this->subject->getSheetCount() && $this->position >= 0;

}

를 아래처럼 bool로 반환타입을 지정해야 한다

public function valid() : bool

{

    return $this->position < $this->subject->getSheetCount() && $this->position >= 0;

}

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
2 HTML 특수문자 리스트 최고관리자 08-08 1,417
1 유니코드 특수문자 리스트 최고관리자 08-08 1,465