PATRÓN STRATEGY EN PHP: QUÉ ES Y CÓMO IMPLEMENTARLO

El patrón strategy es un patrón de diseño de comportamiento que convierte un grupo de comportamientos en objetos y los hace intercambiables dentro del objeto de contexto original. Supongamos que necesitamos hacer varias acciones en diferentes sitios, por ejemplo publicar en diferentes redes sociales u obtener información por ejemplo, bolsa y cambio de divisas.
Con el patrón strategy nos permite hacer todo más fácil. Veamos une ejemplo de patrón strategy en php:
interface publishOnSocialNetwork
{
    public function publish(string $post): bool;
}

class facebook implements publishOnSocialNetwork
{
    public function publishPost(string $post): bool;
    {
   //facebookObject: Supuesto objeto de facebook con nuestros credenciales para publicar post, subir fotos, etc..
   //publish: Supuesto método para publicar un post en facebook
   return $facebookObject->publish($post);
    }
}

class twitter implements publishOnSocialNetwork
{
    public function publishPost(string $post): bool;
    {
   //twitterObject: Supuesto objeto de facebook con nuestros credenciales para publicar post, subir fotos, etc..
   //publish: Supuesto método para publicar un post en facebook
   return $twitterObject->publish($post);
    }
}

class SocialNetwork
{
    private $socialNetwork;

    public function __construct(publishOnSocialNetwork $socialNetwork)
    {
   $this->socialNetwork = $socialNetWotk;
    }

    public function setSocialNetwork(publishOnSocialNetWork $socialNetwork)
    {
   $this->socialNetwork = $socialNetwork;
    }

    public function publish($text): void
    {
   // ...
     
   $result = $this->socialNetwork->publishPost($text);
     
   // ...
    }
}

$socialNetwork = new SocialNetwork(new facebook ());
$socialNetwork->publish('Publicando en Facebook');

$socialNetwork->setStrategy(new twitter());
$socialNetwork->publish('Publicando en twitter');
En el ejemplo anterior tenemos un interfaz para implementar tantas clases como redes sociales queramamos publicar, en este caso twitter y facebook y luego con la clase SocialNetwork se le pasa cada clase de cada red social para que publique en cada una de ellas.
Os invito a leer sobre Patrones de diseño en php.