Link ai social media condivisibili con PHP

Nota: questo post è stato spostato sul mio sito Web personale, consultalo per leggere la versione più aggiornata e tenere il passo con i miei ultimi post: https://liamhammett.com/php-shareable-social-media-links -dbr20o7L

Di recente ho avuto la necessità di generare vari link “condivisibili” per aiutare a condividere un determinato URL con diverse piattaforme di social media. Il problema è che ogni piattaforma richiede informazioni in modo leggermente diverso.


Ecco, pochi giorni dopo, Dennis Smink ha condiviso il suo metodo per farlo nel suo articolo “Laravel Shareable Trait” che copre le poche piattaforme più grandi.

Mentre la loro soluzione sicuramente funziona, ho avuto un paio di problemi con la sua attuazione:

  • A causa di alcune funzioni utilizzate, il suo utilizzo è limitato ai soli progetti Laravel e ad un tratto su un modello Eloquent
  • C’è molta ripetizione inutile nella fonte
  • Non mi piace l’API che ha: le opzioni sono limitate alle colonne Eloquent e non è immediatamente chiaro come configurare il tratto.

Quindi, l’ho diviso in un pacchetto separato con una classe che puoi usare senza i limiti di cui sopra.

  $ url = new ShareableLink ('http://example.com/', 'Sito di esempio'); 

echo $ url-> facebook;
// https://www.facebook.com/dialog/share?app_id=ABC123&href=https://example.com/&display=page&title=Example+Site

echo $ url-> twitter;
// https://twitter.com/intent/tweet?url=https://example.com/&text=Example+Site

echo $ url-> whatsapp;
// https://wa.me/?text=Example+Site+https%3A%2F%2Fexample.com%2F

echo $ url-> linkedin;
// https://www.linkedin.com/shareArticle?mini=true&url=https://example.com/&summary=Example+Site

echo $ url-> pinterest;
// https://pinterest.com/pin/create/button/?media=&url=https://example.com/&description=Example+Site

echo $ url-> google;
// https://plus.google.com/share?url=https://example.com/

Invece di un tratto su un modello Eloquent con una configurazione scomoda, puoi semplicemente aggiungere un metodo personalizzato in modo da avere il pieno controllo dell’URL e del titolo, se desideri crearli dinamicamente.

  Le notizie di classe estendono il modello 
{
funzione pubblica getShareUrlAttribute ()
{
$ url = route ('news.show', $ this-> slug);

ritorna nuovo ShareableLink ($ url, $ this-> title);
}
}

Dai un’occhiata e ottieni il pacchetto da GitHub qui sotto.

ImLiam / condivisibile-link

link condivisibile: genera comodamente URL condivisibili per vari siti Web di social media.

github.com