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 | 中文

번역 경고

이 문서는 자동으로 번역되었습니다. 번역 오류가 있다면 프로젝트의 풀 리퀘스트를 열어서 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 지원 노트
블로거 ✔️ ✔️ t 블로그 게시물의 텍스트
디아스포라 ✔️ ✔️
디이고 ✔️ ✔️ description 게시물에 추가할 설명
도우반 ✔️ ✔️ comment 게시물에 추가할 코멘트
에버노트 ✔️ ✔️
페이스북 ✔️
플립보드 ✔️ ✔️ quote 게시물에 추가할 인용구
지메일 ✔️ ✔️ bcc BCC로 보낼 이메일 주소 목록 (쉼표로 구분)
cc CC로 보낼 이메일 주소 목록 (쉼표로 구분)
su 이메일의 제목
to 보낼 이메일 주소 목록 (쉼표로 구분)
해크뉴스 ✔️ ✔️
인스타퍼 ✔️ ✔️ description 게시물의 설명
라인미 ❌️ ✔️
링크드인 ✔️
라이브저널 ✔️ ✔️
메네아메 ❌️ ✔️
오크루 ❌️ ✔️
아웃룩 ✔️ ✔️
핀터레스트 ✔️ ✔️ media 게시물에 표시할 이미지 URL
플러크 ❌ ️ ✔️
포켓 ✔️ ✔️
큐존 ✔️ ✔️ summary 게시물의 요약
레딧 ✔️ ✔️
렌렌 ✔️ ✔️ description 게시물의 설명
srcUrl 게시물의 원래 URL
스카이프 ✔️ ✔️
텔레그램 ✔️ ✔️
쓰리마 ✔️ id 게시물을 보낼 사람의 ID
텀블러 ✔️ ✔️ caption 게시물에 추가할 캡션
tags 게시물에 적용할 태그 목록 (쉼표로 구분)
트위터 ✔️ ✔️ hastags 트윗에 적용할 해시 태그 목록 (쉼표로 구분)
via 크레딧을 주기 위한 트윗터
바이버 ✔️ ✔️
VKontakte ✔️ ✔️ description 게시물의 설명
image 게시물에 표시할 이미지 URL
위보 ✔️ ✔️
왓츠앱 ✔️ ✔️
✔️
야후메일 ✔️ ✔️

기여하기

새로운 서비스를 추가하는 것은 비교적 간단합니다. 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. 커뮤니티 기여 Pull Request

버그를 발견하고 해결책을 가지고 있다면, Pull Request를 제출해 주세요. 제품에 영향을 주는 문제 이후로는 이러한 커뮤니티 기여에 다음으로 높은 우선순위를 부여합니다. 검토 및 승인 후에는 당신의 솔루션을 병합하고 기여를 인정해 드립니다.

3. 재정적 지원

위에서 언급한 범주 이외의 문제에 대해서는 해결을 위해 재정적인 지원을 선택할 수 있습니다. 각각의 오픈 이슈는 재정적인 기여를 할 수 있는 주문 양식과 연결되어 있습니다. 우리는 제공된 재정적인 기여 금액에 따라 이러한 문제에 우선순위를 부여합니다.

커뮤니티 기여

오픈 소스는 커뮤니티가 활발할 때 번영합니다. 버그를 수정하지 않더라도, 코드 개선, 문서 업데이트, 튜토리얼 작성 또는 커뮤니티 채널에서 다른 사람들을 도와주는 등의 기여를 고려해 보세요. 우리는 모두가 커뮤니티로서 오픈 소스 작업을 지원하는 것을 적극적으로 장려합니다.

다시 말씀드리지만, DefectiveCode는 유료 제품에 영향을 주는 버그, 커뮤니티 기여 Pull Request 및 문제에 대한 재정적인 지원을 기반으로 버그에 우선순위를 부여할 것입니다.

라이선스 - MIT 라이선스

저작권 © Defective Code, LLC. All rights reserved

이 소프트웨어 및 관련 문서 (이하 "소프트웨어")의 사본을 획득하는 모든 사람에게 무료로 제공되며, 다음 조건에 따라 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 재실시권 및/또는 판매 사본을 허용하고 소프트웨어를 제공받은 사람들에게도 동일한 조건으로 허용합니다.

위의 저작권 고지와 이 허용 고지는 모든 사본 또는 중요한 부분에 포함되어야 합니다.

소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해성에 대한 어떠한 보증도 포함하지 않습니다. 저작권자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 소프트웨어와 관련하여 발생하는 어떠한 청구, 손해 또는 기타 책임에 대해서도 책임지지 않습니다.

Link Sharer - Defective Code