워드프레스 테마 및 플러그인에 대한 만족도 작성자 개인 저장소 만들기
저의 목표는.composer.json
프로젝트 저장소에 커밋된 파일로, 해당 프로젝트에 사용할 테마 또는 플러그인을 지정하고 개발자가 리포를 풀다운하면 Composer 설치만 실행하면 됩니다.우리는 프로젝트 레포에서 플러그인을 빼내어 프로젝트 레포의 팽창과 당김과 밀어내기가 느려지는 것을 방지하고자 합니다.
"Jetpack by WordPress.com "과 같은 표준 워드프레스 플러그인의 경우에는 https://wpackagist.org/ 을 사용할 것이므로 괜찮습니다.그러나 Premium의 경우 오픈 소스가 불가능한 플러그인 및 자체 제작 맞춤형 플러그인에 대해 Private Composer Repository에서 호스팅하려고 합니다.
이러한 플러그인의 여러 버전이 있을 것이기 때문에 개발자가 composer.json에 어떤 버전이 필요한지 지정할 수 있도록 1.1, 1.2, 1.3과 같은 모든 버전을 표시했으면 합니다. 예를 들어 향후 버전에서 어떤 것이 고장 나서 이전 버전으로 롤백해야 하는 경우 등입니다.
저는 Satis 개인 저장소 설정에 대한 기본 사항을 다 읽었지만 버전의 git 태그를 루프하고 워드프레스 플러그인임을 지정하여 올바른 위치에 설치할 수 없습니다.
이것은 제가 처음 시도한 모든 깃 태그 버전입니다.
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:companyname/project.git"
}
],
"require-all": true
}
버전을 지정해야 하지만 올바른 Wordpress 플러그인 위치에 설치해야 합니다.
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "package",
"package": {
"name": "company/project",
"description": "WordPress Plugin",
"version": "1.0",
"source": {
"type": "git",
"url": "git@bitbucket.org:company/project.git",
"reference": "origin/master"
},
"type": "wordpress-plugin",
"require": {
"php": ">=5.3.2",
"composer/installers": "*"
}
}
}
],
"require-all": true,
"require-dependencies": true,
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
}
}
}
이 두 시나리오를 어떻게 함께 사용할 수 있는지 조언해 줄 수 있는 사람이 있습니까?
비슷한 설정이 있는 것 같습니다.로컬 Satispo에는 개인 Git 서버의 내부 패키지와 Github의 모든 외부 패키지가 있습니다.
비결은 두 단계를 수행하는 것입니다.1단계는 모든 외부 패키지의 메타데이터만 가져오며, 여기서 모든 것을 꺼내는 것을 방지하기 위해 버전 범위가 작동합니다.
두 번째 단계에서는 모든 로컬 Git repo를 스캔하여 모든 버전을 검색하고 1단계에서 생성된 Composer repo를 추가로 추가합니다.
효과적으로 두 개의 결과를 생성하는 두 개의 Satis 구성을 다루게 되며, 외부 패키지에 대한 첫 번째 작업의 결과는 모든 메타데이터만 가져올 것이며, 두 번째 단계에서는 로컬 Gitrepo와 동일하게 가져오기 및 사용됩니다.이 두 번째 단계에서 "모든" 버전을 검색하도록 구성하고 이 버전에서 ZIP 파일을 생성하면 필요한 모든 패키지의 로컬 백업 복사본이 생성됩니다.
또는 다른 말로 하면 다음과 같습니다.
외부 만족.json
{
"repositories": [
{
"type":"composer",
"url":"https://packagist.org"
}
],
"require": {
"any/package":">=2.0"
}
"output-html": false,
"require-dependencies": true
}
실행:
php -dmemory_limit=2G satis/bin/satis build satis-external.json external/
내적 만족.json
{
"repositories": [
{
"type": "composer",
"url": "http://url/from/external/above"
},
{
"type": "vcs",
"url": "ssh://internal/gitrepo.git"
}
],
"require-all": true,
"archive": {
"directory": "dist",
"format": "zip",
"prefix-url": "https://whatever/youneed",
"skip-dev": true
}
}
실행하기
php -dmemory_limit=2G satis/bin/satis build satis-internal.json internal/
Satis에 "type=composer" 저장소를 추가하면 다른 저장소와 마찬가지로 작동합니다. 특히 "require-all=true"인 경우 해당 저장소에 언급된 모든 패키지가 다운로드되므로 Packagist 또는 다른 저장소를 직접 추가하지 않도록 주의해야 합니다.
또한 사용하고자 하는 패키지의 모든 종속성을 추가해야 하는 번거로움을 겪지 않을 수 있기 때문에 외부 패키지의 경우에도 "필요 의존성"이 적용된다는 점에 유의하십시오.
일부 유료 패키지에서 원격 레포 액세스 권한을 제공하는 경우 이 레포를 액세스 자격 증명과 함께 외부 구성에 추가할 수 있습니다.
제 경험으로는 처음 시도하는 것만으로도 충분하겠지만, 각각의 패키지("회사/프로젝트")에서 필요로 하는 몇 가지를 놓치고 있다고 생각합니다.
한 composer.json 가 합니다.composer/installers
그것들 각각에.다를 ."type": "wordpress-plugin"
마, muplugin, dropin)
이것을 필수로 하면 원하는 경로에 패키지를 설치할 수 있습니다.기본적으로 다음 폴더에 설치됩니다.
protected $locations = array(
'plugin' => 'wp-content/plugins/{$name}/',
'theme' => 'wp-content/themes/{$name}/',
'muplugin' => 'wp-content/mu-plugins/{$name}/',
'dropin' => 'wp-content/{$name}/',
);
(출처: installers/WordPress.php)
...하지만 두 번째 조각에서 이 조각을 사용하여 변경할 수 있습니다. 예를 들어 "htdocs" 폴더 아래에 사이트 코드가 있는 경우:
"extra": {
"installer-paths": {
"htdocs/wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
}
}
이러한 구성을 사용하여 Satis는 깃 태그에서 적절한 태그를 생성해야 합니다.
도움이 됐으면 좋겠네요!
언급URL : https://stackoverflow.com/questions/37747522/creating-satis-composer-private-repository-for-wordpress-themes-and-plugins
'it-source' 카테고리의 다른 글
TypeError: $(...).modal이 부트스트랩 모달을 사용하는 함수가 아닙니다. (0) | 2023.10.03 |
---|---|
MySQL의 INSERT와 UPDATE의 차이점은 무엇입니까? (0) | 2023.10.03 |
CAP 정리 - 가용성 및 파티션 공차 (0) | 2023.10.03 |
SQL Server에서 잘라내기(sysdate) (0) | 2023.10.03 |
AppCompat의 전체 화면 테마 (0) | 2023.09.28 |