18

個人用の PHP ライブラリ用に SVN リポジトリを作成し、ルート レベルに composer.json ファイルを追加しました。

{
        "name": "myPersonalLibrary/lib",
        "type": "library",
        "description": "Light MVC framework for PHP 5.4",
        "keywords": ["database","mvc"],
        "homepage": "http://mysite.com",
        "license": "MIT",
        "require": {
                "php": ">=5.3.0",
                "mustache/mustache": "dev-master"
        },
        "autoload": {
                "psr-0": {
                        "bbn": "src"
                }
        }
}

次に、次の composer.json を使用してプロジェクトを作成しました。

{
    "require": {
        "monolog/monolog": "1.0.*",
        "zerkalica/php-code-sniffer": "dev-master",
        "mustache/mustache": "dev-master",
        "myPersonalLibrary/lib": "*"
    },
    "repositories": [
            {
                    "type": "svn",
                    "url": "https://mysite.com/svn/myPersonalLibrary",
                    "branches-path": false,
                    "tags-path": false,
                    "trunk-path": "src"
            }
    ]
}

そして、プロジェクトを更新しようとすると、次のようになります。No valid composer.json was found in any branch or tag of https...

問題はファイルの構造にあると思いますが、これに関するドキュメントを見つけることができませんでした:

/my_repo
  /src
    /lib
      /api
      /db
      /file
      /html
      ....
      /mvc.php
      /obj.php
  /composer.json

私の URL を packagist.org に投稿しようとしたところ、No valid/supported repository was found at the given URL

4

2 に答える 2

13

「プロジェクト ルート」(正確に 3 つのサブディレクトリ: /trunk/branches、およびを含む/tags) で公式に推奨されるリポジトリ レイアウトを使用する場合、これはうまくいくはずです。

PHP ライブラリの場合composer.json、トランクのプロジェクト ルートに作成します (そしてコミットします)。例えば:

{
    "name": "myProject/myLibrary",
    "description": "My Personal Library",
    "license": "proprietary",
    "require": {
        "php": ">=5.3"
    },
    "autoload": {
        "classmap": ["src/"]
    }
}

ライブラリ リポジトリが で利用可能であるとしましょうhttp://svn.example.com/path/to/myLibrary。レイアウトは次のようになります。

/path/to/myLibrary
  /trunk
    /composer.json
    /src
      ...
  /branches
  /tags

次に、ライブラリを使用するプロジェクトで、次の内容で composer.json を作成します。

{
    "repositories": [
        {
            "type": "vcs",
            "url": "http://svn.example.com/path/to/myLibrary"
        }
    ],
    "require": {
        "nette/nette": "~2.2",
        "myProject/myLibrary": "@dev"
    }
}

キーは、まだトランク@devにしかない場合、ライブラリに必要なバージョンとして使用することです。composer.jsonトランクからタグを作成すると、バージョン番号の使用を開始できます。たとえば、あなたの場合、バージョン番号としてsvn copy ^/trunk ^/tags/1.0.0使用できます。"myProject/myLibrary": "~1.0"

于 2014-07-23T18:41:53.077 に答える