A better practice is to define a `setAdapter()` method and call it in the constructor.
Like that, you can override easily this method in a derived class to define an another type of adapter.
```
public function __construct($adapter = null)
{
   …
   $this->setAdapter($adapter);
}

public function setAdapter(adapter $adapter = null)
{
   $this->adapter = $adapter ?: new adapter();

   return $this;
}
```