2017-08-10 3 views
0

開発者として、私はOCマーケットにプラグインを提出したいと考えています。私のプラグインはcomposer.jsonで定義されたコンポーザー要件を持っています。作曲家の要求に合わせてOctobercms Marketにプラグインを提出してください。ベンダーマップを含める必要がありますか?

devマシンではすべて正常に動作しますが、依存関係はプロジェクトのルートで実行されるコンポーザアップデートに含まれています。したがって、すべての依存関係はルートルートのベンダーマップにあります。

私はすでにアカウント/プラグイン/作成ページから自分のプラグインをOC Marketに提出しました。プラグインはZIPファイルとして(!)ベンダーマップなしでアップロードされました。依存関係はcomposer.jsonファイルでのみ定義されていましたが、実際にはZIPファイルには含まれていませんでした。

新しいOCインストールでプラグインをインストールすると、プラグインフォルダに「ベンダー」マップが含まれます。このように: 'plugins/author/foo/vendor'。このプラグインは、CMS内からインストールされます(url:backend/system/updates/install)。また、$ artisan plugin:install author.fooでcliの2番目のテストとしてインストールされます。どちらの場合でも、インストールは正しく行われました。

  1. このベンダーマップは、プラグインが存在するフォルダにどのようにマップされていますか?
  2. OC Marketへの提出時にZIPファイルにベンダーマップを追加するかどうかを指定することをお勧めしますか?
+0

誰か教えてください。私の質問が不明な場合は、私はもっと明確にしようと思っています。 – Ametad

答えて

1

octobercms.comマーケットプレイスのビルドプロセスは、プラグインの依存関係をプラグインのディレクトリ下のベンダーディレクトリにプルし、生成されたパッケージからcomposer.lockとcomposer.jsonを削除します。これは、コンポーザーを使用しないユーザーをサポートすると同時に、マーケットプレイスプラグインとコンポーザーベースのプラグインの両方を使用するユーザーをサポートするためです。

ビルドプロセス中にプラグインにcomposer.jsonを残して、そのマーケットプレイスプラグインのプロジェクトルートからcomposer updateを実行すると、突然、依存関係が重複して多くの問題を引き起こしていました。

すべてのこと:マーケットプレイスにプラグインを送信する際に、ベンダーのディレクトリを含めないでください。マーケットプレイスがそれを処理します。しかし、あなたのcomposer.jsonファイルを含めてください。

RainLab.GoogleAnalyticsに関しては、マーケットプレイスのビルドが壊れているように見えます。つまり、市場でビルドする必要があります。これは、Githubリポジトリへの更新をプッシュすることによって引き起こされる可能性があります。残念ながら、リポジトリがGithubアカウントで大規模に壊れていて、問題にコメントする権限がないということもあります。したがって、プラグインの再構築を開始できません。しかし、スラックやIRCで@spunky(10月のクリエイター)と話すことを思い出させたら、それをやり直すことができ、おそらく彼は再構築をトリガーすることができます。

+0

Luke、約GitHubにコメントできませんでした。広告ブロッカーを使用している場合は、それを無効にしてみてください。それが私のトリックでした。 – Ametad

+0

チップAmetadをありがとう、それは働いた! – LukeTowers

0

10月には、プラグインの作曲depenciesインストールまたは私のプラグインで例えばphp artisan october:up

fetchs:私はoctober:upを行うときに、またはそれをインストールし、ベンダーのフォルダなしでそれを指定した場合

{ 
    "name" : "Tschallacka/dynamic-pages-plugin", 
    "type" : "october-plugin", 
    "description" : "DynamicPages plugin for October CMS", 
    "homepage" : "", 
    "keywords" : [ 
     "october", 
     "octobercms", 
     "pages", 
     "exit" 
    ], 
    "authors" : [{ 
      "name" : "Tschallacka", 
      "email" : "[email protected]", 
      "role" : "Developer" 
     } 
    ], 
    "require" : { 
     "php" : ">=7.0", 
     "composer/installers" : "~1.0", 
     "webpatser/laravel-uuid" : "^2.0", 
     "paragonie/random_compat" : "^2.0" 
    }, 
    "minimum-stability" : "dev" 
} 

10月末のバックエンドを経由して、ベンダフォルダ(ここにはplugins/author/myplugin/vendor)に必要なファイルが移入されるので、私のベンダーディレクトリに作者、webpatserおよびparagonieのフォルダが作成されます。

+0

ありがとうございました!依存関係が表示されているこのベンダーフォルダへのパスは何ですか?OC Marketplaceから取得したプラグインのインストールを実行すると、ここにフォルダが '' 'www/plugins/authorname/pluginname/vendor'''フォルダに表示されます。ここではない '' 'www/vendor''' – Ametad

+0

はい、表示されるはずです。 Composer.jsonによって管理されているプラ​​グインのベンダーフォルダです。 10月には独自のcomposer.jsonによって管理されている独自のベンダーフォルダがあります。それはそれがどのように働くかです:-)。 – Tschallacka

+0

よろしく!うーん。私はまた、コンポーザーにプライベートプラグインをインストールしています。 ''作者がOCプロジェクトのルートにあるcompany/myplugin'''を要求すると、すべての依存関係はプラグインフォルダではなくルートベンダフォルダにダウンロードされます。それが最初に奇妙に見えた理由です... – Ametad

関連する問題