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>
composer require defectivecode/link-sharer
서비스 제공자들은 때때로 사전 공지 없이 공유 링크를 업데이트합니다. 저희는 이러한 변경 사항을 최신 상태로 유지하기 위해 최선을 다하고 있습니다. 그러나 기능이 작동하지 않는 서비스를 만나게 되면 문제를 열거나 풀 리퀘스트를 제출해 주시기 바랍니다. 새로운 서비스를 추가하려면 아래의 기여 섹션을 참조하십시오.
일부 서비스는 구성 요소에 전달할 수 있는 추가 매개 변수를 제공합니다. 이러한 매개 변수는 아래 표에 문서화되어 있습니다.
서비스 | 텍스트 지원 | 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
이 패키지는 text
와 url
이라는 두 가지 주요 속성을 식별합니다. 이들은 대부분의 서비스 제공자에서 널리 사용되는 속성이기 때문에, 다른 네이밍 규칙을 사용하는 서비스의 경우에만 이러한 속성을 정의하세요. 예를 들어, 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
배열을 통해 액세스할 수 있습니다. 예시에서는 다음과 같습니다.
text
와 url
속성이 모두 존재하는 경우, url
이 text
속성에 추가됩니다.url
속성만 사용 가능한 경우, text
속성은 url
의 값이 됩니다.저희 오픈 소스 패키지를 선택해 주셔서 감사합니다! 이 지원 가이드라인을 확인하시면 저희 프로젝트를 최대한 활용할 수 있습니다.
저희 오픈 소스 프로젝트는 멋진 커뮤니티에 의해 지원됩니다. 질문이나 도움이 필요한 경우, StackOverflow나 다른 온라인 자료들이 가장 좋은 선택입니다.
오픈 소스 프로젝트를 관리하는 현실적인 문제로 인해 모든 버그나 기능 요청에 즉시 대응할 수는 없습니다. 우리는 다음과 같은 우선순위로 문제를 처리합니다:
유료 제품에 영향을 주는 버그는 항상 최우선 순위입니다. 경우에 따라 저희에게 직접적인 영향을 주는 버그만 처리할 수도 있습니다.
버그를 발견하고 해결책을 가지고 있다면, Pull Request를 제출해 주세요. 제품에 영향을 주는 문제 이후로는 이러한 커뮤니티 기여에 다음으로 높은 우선순위를 부여합니다. 검토 및 승인 후에는 당신의 솔루션을 병합하고 기여를 인정해 드립니다.
위에서 언급한 범주 이외의 문제에 대해서는 해결을 위해 재정적인 지원을 선택할 수 있습니다. 각각의 오픈 이슈는 재정적인 기여를 할 수 있는 주문 양식과 연결되어 있습니다. 우리는 제공된 재정적인 기여 금액에 따라 이러한 문제에 우선순위를 부여합니다.
오픈 소스는 커뮤니티가 활발할 때 번영합니다. 버그를 수정하지 않더라도, 코드 개선, 문서 업데이트, 튜토리얼 작성 또는 커뮤니티 채널에서 다른 사람들을 도와주는 등의 기여를 고려해 보세요. 우리는 모두가 커뮤니티로서 오픈 소스 작업을 지원하는 것을 적극적으로 장려합니다.
다시 말씀드리지만, DefectiveCode는 유료 제품에 영향을 주는 버그, 커뮤니티 기여 Pull Request 및 문제에 대한 재정적인 지원을 기반으로 버그에 우선순위를 부여할 것입니다.
저작권 © Defective Code, LLC. All rights reserved
이 소프트웨어 및 관련 문서 (이하 "소프트웨어")의 사본을 획득하는 모든 사람에게 무료로 제공되며, 다음 조건에 따라 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 재실시권 및/또는 판매 사본을 허용하고 소프트웨어를 제공받은 사람들에게도 동일한 조건으로 허용합니다.
위의 저작권 고지와 이 허용 고지는 모든 사본 또는 중요한 부분에 포함되어야 합니다.
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해성에 대한 어떠한 보증도 포함하지 않습니다. 저작권자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 소프트웨어와 관련하여 발생하는 어떠한 청구, 손해 또는 기타 책임에 대해서도 책임지지 않습니다.