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



「別の方法で」



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



責任バウンス



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




All Articles