I wrote a simple Google Crawler in PHP, and my GoogleProxy interface does not seem to follow the Single Responsibility Principle.Here's my Interface code:<?php/** * Interface that represents an online proxy service. * Every class that implement it must know how to return the apropriate ResponseInterface to an url based on what * the proxy service needs, and must know how to parse an url used within its pages. * * @package CViniciussDias\GoogleCrawler\Proxy * @author Vinicius Dias */interface GoogleProxy{    /**     * Gets the ResponseInterface for the informed URL based on all the information that     * the proxy service needs     *     * @param string $url     * @return ResponseInterface     */    public function getHttpResponse(string $url): ResponseInterface;    /**     * Parses an URL based on how they are encoded in the proxy service     *     * @param string $url     * @return string     */    public function parseUrl(string $url): string;}And one of its implementations:<?phpnamespace CViniciusSDias\GoogleCrawler\Proxy;use CViniciusSDias\GoogleCrawler\Exception\InvalidResultException;use GuzzleHttp\Client;use Psr\Http\Message\ResponseInterface;/** * Class that represents the absense of a proxy service, making the direct request to the url * and returning its response * * @package CViniciussDias\GoogleCrawler\Proxy * @author Vinicius Dias */class NoProxy implements GoogleProxy{    public function getHttpResponse(string $url): ResponseInterface    {        return (new Client())->request('GET', $url);    }    public function parseUrl(string $url): string    {        // Separates the url parts        $link = parse_url($url);        // Parses the parameters of the url query        parse_str($link['query'], $link);        $url = filter_var($link['q'], FILTER_VALIDATE_URL);        // If this is not a valid URL, so the result is (probably) an image, news or video suggestion        if (!$url) {            throw new InvalidResultException();        }        return $url;    }}Here's the full code if needed (I would enjoy some pull requests too):https://github.com/CViniciusSDias/google-crawlerShould I split the two tasks it performs into 2 separate classes? Several other Proxies will be implemented in a near future. Wouldn't it make the number of classes increase more than necessary?
Google Crawler. Searches the 100 first google results for some term
php;object oriented