/home/kueuepay/public_html/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php
<?php
namespace Hamcrest\Core;

/*
 Copyright (c) 2009 hamcrest.org
 */
use Hamcrest\Description;
use Hamcrest\DiagnosingMatcher;

/**
 * Tests whether the value is an instance of a class.
 */
class IsInstanceOf extends DiagnosingMatcher
{

    private $_theClass;

    /**
     * Creates a new instance of IsInstanceOf
     *
     * @param string $theClass
     *   The predicate evaluates to true for instances of this class
     *   or one of its subclasses.
     */
    public function __construct($theClass)
    {
        $this->_theClass = $theClass;
    }

    protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
    {
        if (!is_object($item)) {
            $mismatchDescription->appendText('was ')->appendValue($item);

            return false;
        }

        if (!($item instanceof $this->_theClass)) {
            $mismatchDescription->appendText('[' . get_class($item) . '] ')
                                                    ->appendValue($item);

            return false;
        }

        return true;
    }

    public function describeTo(Description $description)
    {
        $description->appendText('an instance of ')
                                ->appendText($this->_theClass)
                                ;
    }

    /**
     * Is the value an instance of a particular type?
     * This version assumes no relationship between the required type and
     * the signature of the method that sets it up, for example in
     * <code>assertThat($anObject, anInstanceOf('Thing'));</code>
     *
     * @factory any
     */
    public static function anInstanceOf($theClass)
    {
        return new self($theClass);
    }
}
Best Practice

Best Practices

To ensure a smooth integration process and optimal performance, follow these best practices:

  1. Use secure HTTPS connections for all API requests.
  2. Implement robust error handling to handle potential issues gracefully.
  3. Regularly update your integration to stay current with any API changes or enhancements.