別の方法でのMagento 2のサンプルモジュール

昨秋、Magento 2.0がリリースされたとき、「 Magento 2のモジュール例 」という記事を書きました。この記事では、 Magentoの2番目のバージョンのモジュールを開発する環境を作成するための可能なオプションの1つを概説しました。 最近では、 Magento Composerインストーラー (Magento 1が以前のMagento 2.0.0の例で展開および展開する)を使用して、どのMagento開発者が展開スキームから移行しているかを判断するアップデートがリリースされました(v 2.0.1およびv 2.0.2)。少なくとも、Magentoのバージョンを2.0.0から2.0.1に変更するだけで、Magentoアプリケーションとして動作することを望んでいないという事実につながりました。

カットの下で-変化する条件に適応した環境の展開の新しい例。

環境タスク


この例には、次の機能を提供するスクリプトが含まれています。

  1. 環境をローカルに展開して、Magento2モジュールを開発します。
  2. Travis CIサービスに環境を展開して、Magento2モジュールをテストします。

まとめ


メインのディレクトリとファイルの説明flancer32 / sample_mage2_module


一般的な展開アルゴリズム



構成


展開中、構成は./deploy_cfg.shファイルから読み取られます(明らかな理由によりバージョン管理下にありません)。 ローカル構成ファイルを作成するためのテンプレートには、2種類のパラメーターが含まれています。


追加オプションcomposer.json


追加オプションでは、元のMagento2 CEアプリケーションに以下が追加されます。


JSON構成のマージ


この例では、JSON構成の読み取りとそれ以降の処理は、 ./deploy/merge_json.phpは不要なユニバーサルデータコンテナー( DataObject )を介して実行されます( ./deploy/merge_json.php参照)。 ただし、このコンポーネントを使用して、展開中に排他的に使用される追加の依存関係を展開するときに接続をテストしました。 一般に、干渉する場合は破棄できます。 merge_json.phpでの編集に加えて、。 merge_json.phpから行を./deploy.sh必要もあります

 echo "\nAdd initial dependencies to M2 CE project..." composer require flancer32/php_data_object:dev-master 

マージする前に、元のcomposer.json Magento2 CEのminimum-stability要素が削除されます( deploy/composer_unset.jsonファイルを参照)。 そうでない場合は、単一の値'dev'の代わりに配列['alpha'、 'dev']が含まれます。

アプリケーションの初期化


Magento2インストーラーは、単にdeploy.shから開始します。

 php $M2_ROOT/bin/magento setup:install ... 

初期化に使用可能なパラメーター

モジュールテスト


 $ cd work/vendor $ php ./bin/phpunit -c flancer32/sample_mage2_module/test/unit/phpunit.dist.xml $ php ./bin/phpunit -c flancer32/sample_mage2_module/test/functional/phpunit.dist.xml 

トラビスのログ。

追加


バージョン管理


モジュールの開発は./srcディレクトリではなく、。 ./work/vendor/flancer32/sample_mage2_module/srcディレクトリで行われます。 IDEが開発中のすべてのモジュールを認識するためには、適切な設定でそれらをリストする必要があります(PhpStormの場合は、 ファイル/設定/バージョン管理です )。

Magento Connectの秘密鍵


作曲家プロジェクトを作成するには

 $ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition $M2_ROOT 

Magento Connect Webサイトで「キー」のペアを作成する必要があります 。 コマンドラインから手動でデプロイする場合、コンポーザーはこれらのパラメーターをローカル設定に保存します; Travis CIにデプロイする場合、これらのパラメーターを環境変数 $ M2_KEY_PUB&$ M2_KEY_PRIVに設定するか、 .travis.yml直接指定する必要があり.travis.yml

  - composer config -g http-basic.repo.magento.com PUBLIC PRIVATE 

エラー:関数のネストレベルが「100」に達しました


このエラーが発生した場合は、 php.iniに追加します。

 xdebug.max_nesting_level=200 

Phing


Phingは、 Magentoプロジェクトを構築するために何も提供しません(一般的にはそうすべきではありません)。 したがって、このように-シェルと作曲家。

「別の方法で」


このフレーズは、かつて私の目に留まった非常に古い料理本から引用したものです。

責任バウンス


この資料は単なる例であり、理解しないと実際のアプリケーションの展開の基礎として機能することはできません。

Source: https://habr.com/ru/post/J277183/


All Articles