7

私は Satis が初めてで、このチュートリアルを見つけました: https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md

しかし、私はまだ自分自身を始めることができません。Satis はプロジェクト ベースでインストールされますか? もしそうなら、新しいプロジェクトごとに Satis をインストールしなければならないということですか?

フォルダーから実行しようとするcomposer.phar create-project composer/satis --stability=devと、composer.phar が見つからないというエラー メッセージが表示されます。それで、試してみるとcomposer create-project composer/satis --stability=dev、composer を実行するフォルダー内に satis という新しいフォルダーが作成されます。

では、Satis をインストールして使用するにはどうすればよいでしょうか? これについて教えてくれるビデオチュートリアルを知っていますか? Youtubeで見つけられません。

ありがとうございました。

4

2 に答える 2

9

しかし、私はまだ自分自身を始めることができません。Satis はプロジェクト ベースでインストールされますか? もしそうなら、新しいプロジェクトごとに Satis をインストールしなければならないということですか?

いいえ、satis は個人的な packagist のようなリポジトリです。その中に、packagist から取得するのではなく、自分でホストしたいパッケージをどこで取得するかについての一連の定義を保持します。

フォルダーから composer.phar create-project composer/satis --stability=dev を実行しようとすると、composer.phar が見つからないというエラー メッセージが表示されます。

composer がパスにない場合、コマンドは php 'composer.phar' になります ( https://getcomposer.org/doc/00-intro.md#globally )

それで、 composer create-project composer/satis --stability=dev を試してみると、composer を実行するフォルダー内に satis という新しいフォルダーが作成されます。

これは、composer.phar を /usr/local/bin/composer に移動したことを意味し、「composer」を実行するだけでグローバルに実行できます (つまり、システム内のすべてのディレクトリから実行できます)。

satis を実行する方法についての「論理的な」ステップバイステップの説明は、私があなたを混乱させていると思うものを明確にするはずです:

バックグラウンド

コンポーザーによってデフォルトとして使用されるサービス内で定義されているリポジトリからプルするのではなく、独自のリポジトリ (git またはその他、git で例を作成します) からいくつかのプロジェクトを提供したいため、satis が必要です。梱包業者。おそらく、元のパッケージに変更を加えたいが、パッケージが更新されたときにそれらを上書きしたくないでしょう。したがって、変更を上流の変更とマージできる場合は、中間ステップが必要です。

ブリーフコンポーザのワークフロー

Packagist はパッケージのソース コードを保持しません。各パッケージの一連の定義 (composer.json ファイル) を保持し、このセットの中で、パッケージを利用できるリポジトリの定義を保持します。

composer を実行すると、

  • packagist の定義を読み取ります
  • 定義された公開リポジトリ (github、git、svn など) からパッケージをダウンロードします。
  • パッケージ自体にある他の定義に従ってコンパイルします

ブリーフコンポーザー/サティスワークフロー

satis のフローは次のとおりです: - Composer は satis 内の定義を使用するように指示されます - satis で見つかった定義を読み取ります - satis で定義されたパブリックリポジトリからパッケージをダウンロードします - パッケージ自体で見つかった他の定義に従ってコンパイルします

便利な Composer/Satis/Git セットアップを段階的に作成する

上記から、段階的な手順は次のとおりです。

  1. composer をグローバルにインストールします (簡単にするために、既にインストール済みです)。
  2. Web から入手できるようになるフォルダーに、satis をインストールします。
  3. システムのどこか (専任の git ユーザーのホーム ロケーションが最も簡単です。「satis」ユーザーかもしれません) で、変更したいパッケージの git リポジトリを複製し、独自の git リポジトリから提供します。
  4. プロジェクトの定義を含むsatisリポジトリ内にsatis.jsonファイルを追加します
  5. 同じ場所から「php bin/satis build satis.json root/」を実行し (私は標準の「web/」ではなく「root/」を好みます)、Web サーバーの documentRoot を「path/to/root/」に設定します。

上記のステップ 4 の例:

{
"name": "My Repo",
"homepage": "http://satis.mydomain.com",
"repositories": [
    {
        "type": "git",
        "url": "satis@satis.mydomain.com:<packagename>"
    }
],

"require-all": true
}

これで、composer、git リポジトリ、satis リポジトリ (独自の packagist) が手に入りました。それらはすべて異なる独立した場所にあります。

Composer の Satis と Git を使用した段階的な手順

パッケージをインストールするディレクトリを作成します composer の指示に従って、このディレクトリに composer.json ファイルを追加します。今回はパッケージが変更されたバージョンであるため、composer.json ファイルはたとえば次のようになります。

{
    "name": "<yourname>/<packagename>",
    "repositories": [
        {
            "type": "composer",
            "url": "http://satis.yourdomain.com"
        },
        {"packagist": true},
        { "type": "composer", "url": "https://packagist.org" }
    ],
    "version": "dev-master",
    "require": {
        "<originalvendorname>/<packagename>": "dev-master"
    },
    "minimum-stability": "dev"
   }

originalvendorname/packagename はパッケージのフルネームですが、必要なものに置き換えてください。この場合、satis リポジトリで定義された git リポジトリからプルされた独自のバージョンのパッケージを作成しています。そこにないもの (可能な依存関係) は、packagist.org リポジトリで定義された各依存関係の元の git リポジトリから取得されます。

独自のバージョンのパッケージにさらに変更を加え、さらにコミットを行った場合は、satis リポジトリを更新する必要があります。上記の手順 5 に従って再構築します。

このようにして、マスター ブランチの最後のコミットにリンクされます (satis では「dev-」が前に付きます)。

お役に立てれば。ステップバイステップのコマンドは、投稿の冒頭で参照したページにあるものです。

于 2014-05-25T20:38:01.280 に答える
3

satis をダウンロードしたら、リポジトリへの場所を含む構成 json ファイルを作成する必要があります。好きな名前を付けてください。その後、bin/satis コマンドを実行して Web ビューアーを作成します。何かのようなもの

php bin/satis build mi-config.json web/

後者のコマンドが機能する場合は、satis サーバーが正しく構成されています。次に、リポジトリのソースをメインの composer.json ファイルに含めるだけです。

"repositories": [
    {
        "type": "composer",
        "url": "http://localhost/satis/web"
    }
],
"require": {
    "my/package: "*"
},

あなたの質問で気づいたこと:

composer.phar create-project を実行しようとしました...

composer.phar が見つからないというエラー メッセージが表示されます。だから、私は composer create-project を試してみます...

サーバー上のすべてのプロジェクトに composer をインストールする必要はありません。共有ルートに移動する限り、すべてのプロジェクトで機能するためです (ドキュメントには、別名 /usr/local/bin/composer - phar 拡張子なし) が記載されています)。最初の例は、プロジェクト ルートにコンポーザーがあり (完全な名前と拡張子を含む)、2 番目の例は、ユーザー/ローカル パスにあるコンポーザーを使用しようとする場合です。

動画ではありませんが参考になれば幸いです

于 2014-03-11T01:28:05.770 に答える