dealroom/socials-helpers

用于社交媒体链接验证和规范化的辅助包


README

Test & Release Quality Gate Status Maintainability Test Coverage

Socials Helpers

用于社交媒体链接验证的辅助包。

要求

此项目需要PHP 8.2或更高版本,并已安装mbstring扩展。

安装

通过[composer]安装,只需运行

composer require dealroom/socials-helpers

使用方法

Factory类为验证功能提供了一个简单的包装器,例如,获取规范化的URL

use Dealroom\SocialsHelpers\Factory;
use Dealroom\SocialsHelpers\Normalizers\TwitterNormalizer;

$data = Factory::parseUrl('http://twitter.com/Dealroom', [TwitterNormalizer::getPlatform()])->getNormalizedUrl();

echo $data;

// "https://twitter.com/dealroom"

或者如果你想要提取社交网络ID(处理程序)

use Dealroom\SocialsHelpers\Factory;
use Dealroom\SocialsHelpers\Normalizers\TwitterNormalizer;

$data = Factory::parseUrl('https://twitter.com/dealroom', [TwitterNormalizer::getPlatform()])->getId();

echo $data;

// "dealroom"

支持的平台

以下平台默认支持

  • Apple Music
  • Facebook
  • Instagram
  • LinkedIn
  • Twitter
  • YouTube
  • TikTok
  • SoundCloud
  • X
  • Spotify

注册新平台

要注册新的规范化器,你需要创建一个新的类,该类实现了NormalizerInterface接口(例如,通过扩展AbstractNormalizer类)。之后,你需要在Factory类中注册新的规范化器。

use Dealroom\SocialsHelpers\Normalizers\AbstractNormalizer;
use Dealroom\SocialsHelpers\Normalizers\Factory;
use Dealroom\SocialsHelpers\Factory;

class CustomNormalizer extends AbstractNormalizer
{
    // Implement the interface methods
}

Factory::addNormalizer(CustomNormalizer::class);

$data = Factory::parseUrl('https://custom.com/Dealroom', [CustomNormalizer::getPlatform()])->getNormalizedUrl();

测试

使用PHPUnit进行测试,运行

./vendor/bin/phpunit

版本和CI/CD

通过GitHub Actions在向main分支推送时自动执行版本发布。发布完成后,将创建一个新的标签并将其推送到GitHub,这将在packagist中触发新的发布。