Skip to content

Commit 1727959

Browse files
committed
PHP 8+ fix for Model::isBuilderMethod()
1 parent d14d3e7 commit 1727959

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

src/Model.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
use ArrayAccess;
66
use JsonSerializable;
7-
use Pace\XPath\Builder;
87
use Pace\Model\Attachments;
8+
use Pace\XPath\Builder;
9+
use ReflectionMethod;
910
use UnexpectedValueException;
1011

1112
class Model implements ArrayAccess, JsonSerializable
@@ -633,7 +634,16 @@ protected function guessPrimaryKey()
633634
*/
634635
protected function isBuilderMethod($name)
635636
{
636-
return method_exists(Builder::class, $name) && is_callable([Builder::class, $name]);
637+
if (version_compare(PHP_VERSION, '8.0.0', '>=')) {
638+
if (method_exists(Builder::class, $name)) {
639+
$reflection = new ReflectionMethod(Builder::class, $name);
640+
return $reflection->isPublic();
641+
} else {
642+
return false;
643+
}
644+
} else {
645+
return method_exists(Builder::class, $name) && is_callable([Builder::class, $name]);
646+
}
637647
}
638648

639649
/**

0 commit comments

Comments
 (0)