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

소개

이 패키지는 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 ✔️ ✔️ hashtags 트윗에 적용할 해시 태그의 쉼표로 구분된 목록.
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 라이선스

Copyright © Defective Code, LLC. 모든 권리 보유.

본 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 얻은 모든 개인에게 무료로 사용 권한이 부여되며, 소프트웨어를 제한 없이 사용할 수 있습니다. 여기에는 소프트웨어를 사용, 복사, 수정, 병합, 게시, 배포, 서브 라이센스 및/또는 판매하는 권리가 포함되며, 소프트웨어가 제공된 사람에게 그러한 권한을 허용하는 것이 포함됩니다. 단, 다음 조건을 준수해야 합니다:

위의 저작권 고지 및 이 사용 허가 고지는 소프트웨어의 모든 복사본 또는 상당 부분에 포함되어야 합니다.

소프트웨어는 "있는 그대로" 제공되며, 명시적이거나 암시적인 어떤 종류의 보증도 없이 제공됩니다. 여기에는 상업성, 특정 목적에 대한 적합성 및 비침해성에 대한 보증이 포함되지만 이에 국한되지 않습니다. 어떤 경우에도 저자나 저작권자는 계약, 불법행위 또는 기타 방식으로 소프트웨어 또는 소프트웨어의 사용이나 기타 거래와 관련하여 발생하는 어떤 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.