Skip to content

Commit

Permalink
Model::isDocumentModel don't need to be extensible
Browse files Browse the repository at this point in the history
  • Loading branch information
GromNaN committed Jul 8, 2024
1 parent 16ff436 commit 8e24ed7
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions src/Eloquent/Model.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,29 @@ abstract class Model extends BaseModel
* It must be a subclass of {@see BaseModel} and use the
* {@see DocumentModel} trait.
*
* @param class-string|object $classOrObject
* @param class-string|object $class
*/
public static function isDocumentModel(string|object $classOrObject): bool
final public static function isDocumentModel(string|object $class): bool
{
if (is_object($classOrObject)) {
$classOrObject = $classOrObject::class;
if (is_object($class)) {
$class = $class::class;
}

if (array_key_exists($classOrObject, self::$documentModelClasses)) {
return self::$documentModelClasses[$classOrObject];
if (array_key_exists($class, self::$documentModelClasses)) {
return self::$documentModelClasses[$class];
}

// We know all child classes of this class are document models.
if (is_subclass_of($classOrObject, self::class)) {
return self::$documentModelClasses[$classOrObject] = true;
if (is_subclass_of($class, self::class)) {
return self::$documentModelClasses[$class] = true;
}

// Document models must be subclasses of Laravel's base model class.
if (! is_subclass_of($classOrObject, BaseModel::class)) {
return self::$documentModelClasses[$classOrObject] = false;
if (! is_subclass_of($class, BaseModel::class)) {
return self::$documentModelClasses[$class] = false;
}

// Document models must use the DocumentModel trait.
return self::$documentModelClasses[$classOrObject] = array_key_exists(DocumentModel::class, class_uses_recursive($classOrObject));
return self::$documentModelClasses[$class] = array_key_exists(DocumentModel::class, class_uses_recursive($class));
}
}

0 comments on commit 8e24ed7

Please sign in to comment.