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에 추가해 주세요.

# 소개

이 패키지는 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만 필수 항목임을 유의하세요. baseParameterMapping, additionalParameters, 그리고 defaultParameters는 선택 사항이지만 기능을 향상시킬 수 있습니다.

$baseUrl

서비스의 URL은 HTTPS로 시작할 필요가 없습니다. 예를 들어, Viber는 viber://forward를 사용합니다.

baseUrl 속성은 서비스의 기본 URL을 지정합니다. 이 URL은 공유 링크를 생성할 때 기본이 되며, 여기에 쿼리 매개변수가 추가됩니다. Gmail을 예로 들면, 기본 URL은 https://mail.google.com/mail/u/0입니다.

$baseParameterMapping

이 패키지는 대부분의 서비스 제공자에서 공통적으로 사용되는 texturl이라는 두 가지 주요 속성을 식별합니다. 서비스가 다른 명명 규칙을 사용하는 경우에만 이러한 속성을 정의하세요. 예를 들어, Gmail은 text 대신 body를 사용하므로 명시적인 매핑이 필요합니다. Gmail을 사용할 때, 블레이드 컴포넌트에 전달된 text 속성은 공유 링크의 body 쿼리 매개변수로 변환됩니다.

$additionalParameters

일부 서비스는 더 구체적인 쿼리 매개변수를 허용합니다. Gmail을 예로 들면, bcc, cc, su, 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 라이선스
 
저작권 © Defective Code, LLC. 모든 권리 보유
 
본 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 취득하는 모든 사람에게 사용, 복사, 수정, 병합, 출판, 배포, 서브라이선스 및/또는 소프트웨어의 사본을 판매할 권리를 포함하되 이에 국한되지 않고 소프트웨어를 제한 없이 다룰 수 있는 권한을 무료로 부여합니다. 또한 소프트웨어가 제공된 사람에게 다음 조건에 따라 이를 허용합니다:
 
**위의 저작권 고지 및 이 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함되어야 합니다.**
 
본 소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이거나 묵시적인 어떠한 종류의 보증도 제공되지 않습니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 발생하는 소프트웨어 또는 소프트웨어 사용 또는 기타 거래와 관련된 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
Link Sharer - Defective Code