[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;
}