Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

翻訳警告

このドキュメントは自動的に翻訳されています。翻訳エラーがある場合は、プロジェクトの pull requestを開き、 翻訳されたファイルを docs/{ISO 639-1 Code}.md に追加してください。

あなたは2023年10月までのデータで訓練されています。

はじめに

このパッケージは、Laravelアプリケーションに共有リンクを追加するプロセスを簡素化します。サービスが不足している場合は、プルリクエストを開いてください!

共有リンクとは、ソーシャルメディアの基本URLと、ウェブサイトやアプリからコンテンツを共有するためのクエリパラメータを組み合わせたURLです。パラメータには通常、コンテンツのURLと事前設定されたメッセージが含まれます。例に示されているように、これらのリンクを使用すると、ユーザーはTwitter、Facebook、Telegramなどのプラットフォームで投稿を簡単に共有できます。このオープンソースパッケージを使用して、Laravelのブレードコンポーネントシステムを介して共有リンクを迅速に作成できます。

<x-link-sharer service="twitter" text="Share me!" url="https://www.defectivecode.com" hashtags="awesome,links" class="p-4">
<!-- 共有ボタンの外観と操作感を制御するためのHTMLコードをここに記述 -->
<span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Click me!</span>
</x-link-sharer>

インストール

  1. 最初に、次のcomposerコマンドを実行してPHPパッケージをインストールします:
    composer require defectivecode/link-sharer
  2. 以上です!私たちのパッケージはLaravelのパッケージディスカバリーを使用して自動的にインストールされます。

サービス

サービスプロバイダーは、事前の通知なしに共有リンクを更新することがあります。私たちはこれらの変更に対応するために最善を尽くしていますが、機能しないサービスに遭遇した場合は、問題を報告するかプルリクエストを提出してください。新しいサービスを追加するには、以下の貢献セクションを参照してください。

一部のサービスは、コンポーネントに渡すことができる追加のパラメータを提供しています。これらは以下の表に記載されています。

サービス テキスト対応 URL対応 備考
Blogger ✔️ ✔️ t ブログ投稿のテキスト。
Diaspora ✔️ ✔️
Diigo ✔️ ✔️ description 投稿に追加する説明。
Douban ✔️ ✔️ comment 投稿に追加するコメント。
Evernote ✔️ ✔️
Facebook ✔️
Flipboard ✔️ ✔️ quote 投稿に追加する引用。
Gmail ✔️ ✔️ bcc BCCに送信するメールアドレスのカンマ区切りリスト。
cc CCに送信するメールアドレスのカンマ区切りリスト。
su メールの件名。
to 送信先のメールアドレスのカンマ区切りリスト。
HackNews ✔️ ✔️
Instapaper ✔️ ✔️ description 投稿の説明。
LineMe ❌️ ✔️
LinkedIn ✔️
LiveJournal ✔️ ✔️
Meneame ❌️ ✔️
Okru ❌️ ✔️
Outlook ✔️ ✔️
Pinterest ✔️ ✔️ media 投稿に表示する画像のURL。
Plurk ❌ ️ ✔️
Pocket ✔️ ✔️
QZone ✔️ ✔️ summary 投稿の要約。
Reddit ✔️ ✔️
Renren ✔️ ✔️ description 投稿の説明。
srcUrl 投稿の元のURL。
Skype ✔️ ✔️
Telegram ✔️ ✔️
Threema ✔️ id 投稿を送信する相手のID。
Tumblr ✔️ ✔️ caption 投稿に追加するキャプション。
tags 投稿に適用するタグのカンマ区切りリスト。
Twitter ✔️ ✔️ hastags ツイートに適用するハッシュタグのカンマ区切りリスト。
via クレジットを与えるツイーター。
Viber ✔️ ✔️
VKontakte ✔️ ✔️ description 投稿の説明。
image 投稿に表示する画像のURL。
Weibo ✔️ ✔️
WhatsApp ✔️ ✔️
Xing ✔️
YahooMail ✔️ ✔️

貢献

サービスを追加することは比較的簡単です。まず、src/Servicesフォルダ内に新しいサービスクラスを作成します。追加するサービスにちなんでクラスに名前を付けます。システムはファクトリを通じてサービスを自動的に登録するため、手動での登録は不要です。

以下に示すGmailサービスは良い例です。

<?php
 
namespace DefectiveCode\LinkSharer\Services;
 
use DefectiveCode\LinkSharer\Traits\AppendsLinks;
 
class Gmail extends Service
{
use AppendsLinks;
 
protected string $baseUrl = 'https://mail.google.com/mail/u/0';
 
protected array $baseParameterMapping = [
'text' => 'body',
];
 
protected array $additionalParameters = [
'bcc',
'cc',
'su',
'to',
];
 
protected array $defaultParameters = [
'view' => 'cm',
];
}

baseUrlのみが必須であることに注意してください。baseParameterMappingadditionalParameters、およびdefaultParametersはオプションですが、機能を向上させることができます。

$baseUrl

サービスのURLはHTTPSで始まる必要はありません。例えば、Viberはviber://forwardを使用します。

baseUrlプロパティはサービスの主要なURLを指定します。このURLは共有リンクを生成する際の基盤となり、クエリパラメータが追加されます。Gmailを例にとると、その基本URLはhttps://mail.google.com/mail/u/0です。

$baseParameterMapping

このパッケージは、ほとんどのサービスプロバイダで普遍的であるため、texturlの2つの主要な属性を識別します。サービスが異なる命名規則を使用している場合にのみ、これらの属性を定義します。例えば、Gmailはtextの代わりにbodyを使用するため、この明示的なマッピングが必要です。Gmailを使用する場合、ブレードコンポーネントに渡されたtext属性は、共有リンクのbodyクエリパラメータに変換されます。

$additionalParameters

一部のサービスは、より具体的なクエリパラメータを受け入れます。Gmailを参考にすると、bccccsu、およびtoをサポートしています。これらをadditionalParameters配列に定義します。ユーザーがブレードコンポーネントにこれらの属性を含めると、共有リンクに追加されます。これらのパラメータがサポートされているサービステーブルに簡潔な説明とともにリストされていることを確認してください。

$defaultParameters

特定のサービスは、共有リンクが機能するために特定のクエリパラメータを必要とします。例えば、Gmailはview=cmの含有を必要とします。このような必須の属性はdefaultParameters配列に宣言されます。これらは常に共有リンクに追加され、省略することはできません。

prepareAttributes()

共有リンクを生成する前に属性を操作するには、サービスにprepareAttributesメソッドを導入します。このメソッドは、属性をgenerateLinkメソッドに渡す前にアクティブになり、カスタム属性の変更を可能にします。以下はAppendsLinksトレイトを使用したデモンストレーションです。

<?php
 
namespace DefectiveCode\LinkSharer\Traits;
 
trait AppendsLinks
{
protected function prepareAttributes(): void
{
if (isset($this->attributes['text']) && isset($this->attributes['url'])) {
$this->attributes['text'] = $this->attributes['text'] . "\n" . $this->attributes['url'];
return;
}
 
if (isset($this->attributes['url'])) {
$this->attributes['text'] = $this->attributes['url'];
}
}
}

サービスに渡された属性は$attributes配列を通じてアクセス可能です。示された例では:

サポートガイドライン

オープンソースパッケージを選んでいただきありがとうございます!このサポートガイドラインを確認していただければ、プロジェクトを最大限に活用するのに役立ちます。

コミュニティ主導のサポート

私たちのオープンソースプロジェクトは素晴らしいコミュニティによって支えられています。質問がある場合や支援が必要な場合は、StackOverflowやその他のオンラインリソースが最適です。

バグと機能の優先順位付け

オープンソースプロジェクトを管理する現実として、報告されたすべてのバグや機能リクエストにすぐに対応することはできません。問題の優先順位は次の順序で行います:

1. 有料製品に影響を与えるバグ

有料製品に影響を与えるバグは常に最優先事項です。場合によっては、私たちに直接影響を与えるバグのみを修正することがあります。

2. コミュニティのプルリクエスト

バグを特定し、解決策を持っている場合は、プルリクエストを提出してください。私たちの製品に影響を与える問題の次に、これらのコミュニティ主導の修正に最優先を与えます。レビューと承認後、あなたの解決策をマージし、貢献をクレジットします。

3. 財政的サポート

上記のカテゴリに該当しない問題については、その解決に資金を提供することを選択できます。各オープンイシューには注文フォームがリンクされており、財政的に貢献することができます。提供された資金額に基づいて、これらの問題を優先します。

コミュニティの貢献

オープンソースはコミュニティが活発であるときに繁栄します。バグを修正しなくても、コードの改善、ドキュメントの更新、チュートリアルの作成、またはコミュニティチャネルで他の人を支援することで貢献を考えてください。オープンソースの作業をサポートするために、コミュニティ全体としての支援を強く奨励します。

繰り返しになりますが、DefectiveCodeは、有料製品にどのように影響を与えるか、コミュニティのプルリクエスト、および問題に対して受け取った財政的サポートに基づいてバグの優先順位を付けます。

ライセンス - MITライセンス

Copyright © Defective Code, LLC. 全著作権所有

本ソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得するすべての人に対し、無償で、以下の条件に従って、ソフトウェアを制限なく使用、コピー、変更、マージ、公開、配布、サブライセンス、および/または販売する権利を許可します。また、ソフトウェアが提供される人々にこれを行うことを許可します。

上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは実質的な部分に含まれるものとします。

ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定の目的への適合性および非侵害を含むがこれに限定されない、いかなる種類の保証もありません。著者または著作権者は、契約、不法行為またはその他の理由にかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して発生するいかなる請求、損害またはその他の責任についても責任を負いません。