What are the advantages and disadvantages of using a wrapper class for external libraries in PHP projects?

Using a wrapper class for external libraries in PHP projects can provide several advantages, such as encapsulating complex functionality, improving code readability, and facilitating easier maintenance and updates. However, it can also introduce overhead in terms of additional code and potentially slower performance compared to directly using the external library.

<?php

// External library class
class ExternalLibrary {
    public function doSomething() {
        // Complex functionality
    }
}

// Wrapper class for ExternalLibrary
class ExternalLibraryWrapper {
    private $externalLibrary;

    public function __construct() {
        $this->externalLibrary = new ExternalLibrary();
    }

    public function doSomething() {
        return $this->externalLibrary->doSomething();
    }
}

// Implementation in PHP project
$wrapper = new ExternalLibraryWrapper();
$wrapper->doSomething();

?>