programing

사용자 지정 패키지에 대한 Composer 설치 경로

topblog 2023. 10. 5. 21:06
반응형

사용자 지정 패키지에 대한 Composer 설치 경로

저는 이 주제에 대한 다른 질문들을 읽었는데 이 문제가 제대로 작동하지 않는 것 같습니다.설치할 사용자 지정 패키지로 cform을 다운로드하려고 합니다.wp-content/plugins/cforms 같은 다른 할 수 요.wpackagist공급품들과 심지어 일부 맞춤 플러그인들도 자체적으로 개발되었습니다.

제가 가진 것입니다.

{
  "name": "mycompany/wordpress-install",
  "description": "Themes and plugins for our wordpress install.",
  "authors": [
    {
        "name": "Me",
        "email": "example@example.net"
    }
  ],
  "require": {
    "deliciousdays/cforms": "14.5.2"
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "deliciousdays/cforms",
        "version": "14.5.2",
        "dist": {
          "url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
          "type": "zip"
        }
      }
    }
  ],
  "extra": {
    "installer-paths": {
      "wp-content/plugins/cforms": ["deliciousdays/cforms"]
    }
  }
}

잘 는, 도 cforms 에 vendor/deliciousdays/cforms 때 (때 히)wp-content/plugins/cforms을 잘못하고 내가 뭘 잘못하고 있는 거지?

이 composer.json을 사용해 보십시오. Wordpress(현재 v3.9)가 포함되어 있습니다.

특정 디렉토리에 설치하기 위해 fancy guy/webroot-installer를 사용합니다.

이 파일은 루트 워드프레스 디렉토리에 있어야 합니다.추가 섹션에는 "webroot-dir"가 "."로 표시됩니다. 현재 디렉토리에 설치됩니다(특정 디렉토리에 설치하려면 "/" 또는 "./"를 사용하지 마십시오). 설치할 디렉토리의 이름으로 변경하십시오.

"extra": {
    "webroot-dir": ".",
    "webroot-package": "wordpress"
}

따라서 이 파일을 실행한 후 wp-content/plugins 디렉토리에 cform을 배치한 일반 워드프레스 구조를 가져야 테마를 설치하려면 cforms 섹션을 복사하고 유형을 "wordpress-theme"로 변경하여 테마 디렉토리에 설치할 수 있습니다.

저는 작곡가 전문가는 결코 아니지만, 이 작업을 제대로 할 수 있었습니다.

{
  "name": "mycompany/wordpress-install",
  "description": "Themes and plugins for our wordpress install.",
  "authors": [
    {
        "name": "Me",
        "email": "example@example.net"
    }
  ],
  "repositories": [
    {
        "type": "composer",
        "url": "http://wpackagist.org"
    },
    {
        "type": "package",
        "package": {
            "name": "wordpress",
            "type": "webroot",
            "version": "3.9",
            "dist": {
                "type": "zip",
                "url": "https://github.com/WordPress/WordPress/archive/3.9.zip"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "cforms",
            "type": "wordpress-plugin",
            "version": "14.5.2",
            "dist": {
                "url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
                "type": "zip"
             }
        }
    }
 ],
    "require": {
      "php": ">=5.3.0",
      "composer/installers": "~1.0",
      "wordpress": "3.9",
      "fancyguy/webroot-installer": "1.0.0",
      "wpackagist/wordpress-seo": "*",
      "cforms": "14.5.2"
    },
    "extra": {
        "webroot-dir": ".",
        "webroot-package": "wordpress"
    }

}

wpackagist를 사용하면 다음 링크에서 설치 가능한 플러그인/테마 목록을 볼 수 있습니다.

http://plugins.svn.wordpress.org/

http://themes.svn.wordpress.org/

Wordpress Plugin Respository의 플러그인을 포함하려면 쉽게 추가할 수 있습니다.예를 들어 Yoast Wordpress SEO 플러그인을 추가하려면 다음을 추가해야 합니다(추가하려면 플러그인의 슬러그를 알아야 함).

    "require": {
      "php": ">=5.3.0",
      "composer/installers": "~1.0",
      "wordpress": "3.9",
      "fancyguy/webroot-installer": "1.0.0",
      "wpackagist/wordpress-seo": "*",
      "cforms": "14.5.2"
    }

여러 가지 시도 끝에 드디어 알아냈습니다.두 가지를 놓친 것 같습니다.

에 변경했습니다."type": "wordpress-plugin", 그 다음에 필요한 것들을 추가할 수 밖에 없었습니다."composers/installers": "~1.0"오이)에 extra완전히 제거됨):

{
  "name": "mycompany/wordpress-install",
  "description": "Themes and plugins for our wordpress install.",
  "authors": [
    {
        "name": "Me",
        "email": "example@example.net"
    }
  ],
  "require": {
    "composer/installers": "~1.0.0",
    "deliciousdays/cforms": "14.5.2"
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "deliciousdays/cforms",
        "version": "14.5.2",
        "type": "wordpress-plugin",
        "dist": {
          "url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
          "type": "zip"
        }
      }
    }
  ]
}

사용자 지정 패키지를 선택한 디렉토리에 설치하는 방법을 여전히 파악할 수 없습니다.composer/installers그 안에 요구합니다.개체에 유형을 추가할 때까지 모든 것을 무시하는 것처럼 보이고 매핑을 결정하는 방법에 따라 해당 유형에 의해 정의된 위치로 강제 다운로드됩니다.

하지만 지금은 효과가 있을 것 같은데요...다운로드 할 수 있는 방법을 아는 사람이 있다면, 다음과 같이 말합니다."myfolder/something/cforms"당신의 대답을 받아들이겠습니다.

제가 같은 문제에 부딪쳤기 때문에, 마침 제가 당신에게 답을 찾았습니다.현재 맞춤형 설치 패키지에 대한 수요가 큰 것은 분명합니다.

composer/installers정의된 프레임워크 및 CMS에서만 작동하고 일반 작곡가 패키지에서는 작동하지 않습니다.

사용자(사용자 정의) 정의 폴더에 패키지를 설치하기 위해 이 Composer 플러그인을 구현했습니다. 단지 Composer.json에 포함하면 됩니다. 예를 따르고 더 궁금한 점이 있으면 말해주세요 :)

https://github.com/mnsami/composer-custom-directory-installer

composer-custom-directory-

기본 Composer 기본 설치 경로 외부에 있는 사용자 지정 디렉토리에 서로 다른 유형의 Composer 패키지를 설치하는 Composer 플러그인vendor폴더.

이것은 다른 것이 아닙니다.composer-installercomposer가 아닌 패키지 유형을 지원하기 위한 라이브러리.application..기타.이는 벤더 폴더 외부에 Composer 패키지를 설치할 수 있는 유연성을 추가하기 위함입니다.이 패키지는 지원만 합니다.composer패키지 유형,

https://getcomposer.org/doc/04-schema.md#type

패키지의 유형입니다.기본값은 라이브러리입니다.

패키지 유형은 사용자 지정 설치 로직에 사용됩니다.특별한 논리가 필요한 패키지가 있으면 사용자 정의 유형을 정의할 수 있습니다.이것은 기호 묶음, 워드 프레스 플러그인 또는 타이포3 모듈일 수 있습니다.이러한 유형은 모두 특정 프로젝트에만 해당되며 해당 유형의 패키지를 설치할 수 있는 설치 관리자를 제공해야 합니다.

사용방법

  • Composer 플러그인을 사용자의composer.json require섹션::
"require":{
    "php": ">=5.3",
    "mnsami/composer-custom-directory-installer": "1.1.*",
    "monolog/monolog": "*"
  }
  • 에서extra섹션에서는 다음에 설치할 패키지의 사용자 지정 디렉토리를 정의합니다.
  "extra":{
    "installer-paths":{
      "./monolog/": ["monolog/monolog"]
    }

을 추가하여installer-paths파트, 당신은 작곡가에게 설치하라고 말하고 있습니다.monolog패키지 안에 있는monolog폴더를 루트 디렉터리에 저장합니다.

  • 새로운 기능을 추가하여 다운로드 디렉토리를 다음과 같이 보다 유연하게 정의할 수 있게 되었습니다.composer/installers, , 와 할 수 .{$vendor}그리고.{$name}n에installer-path섹션:
"extra": {
    "installer-paths": {
        "./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
    }
}

에서 할 수 .doctrine/orm를 프로젝트의 지 에,customlibs.

메모

type: project 관리자에서는 패키지로 .project입니다와 같은 과 함께 입니다.symfony/framework-standard-edition 패키지,됩니다에 됩니다.

언급URL : https://stackoverflow.com/questions/22696831/composer-install-path-for-custom-package

반응형