昨秋、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アプリケーションとして動作することを望んでいないという事実につながりました。
カットの下で-変化する条件に適応した環境の展開の新しい例。
環境タスク
この例には、次の機能を提供するスクリプトが含まれています。
- 環境をローカルに展開して、Magento2モジュールを開発します。
- Travis CIサービスに環境を展開して、Magento2モジュールをテストします。
まとめ
メインのディレクトリとファイルの説明
flancer32 / sample_mage2_module :
- / deploy / :展開中に使用されるファイル。
- /composer_opts.json :オリジナルのcomposer.json Magento2 CEに追加するオプション。
- /composer_unset.json :削除する元のcomposer.jsonのキーのリスト。
- /merge_json.php:Magento2 CEメインJSONファイルと追加オプションをマージするためのユーティリティ。
- /dev/fw/FuncTestApp.php :機能テストを実行するMagento2アプリケーションの実装。
- / src / :Magentoモジュール自体のソース。
- / test / :Magentoモジュールのテスト。
- /機能/ :モジュールの機能テスト(データベースへの接続あり);
- / unit / :ユニットユニットテスト(環境全体がモックされています ');
- / work / :Magentoモジュールを開発およびテストするための環境展開ディレクトリ。
- /.travis.yml:Travis CIのテストスクリプト。
- /composer.json : 開発中のモジュールのcomposer.json;
- /deploy.sh :展開スクリプト。
- /deploy_cfg.sh.init :ローカルスキャン構成パラメーターを設定するためのテンプレート。
- /deploy_cfg.sh.travis:Travis CIへの展開の構成オプション。
一般的な展開アルゴリズム
- composerを使用して、Magento2 CEプロジェクトを作成します。
- プロジェクトの
composer.json
CEを必要な指示で補完します。 - コンポーザーを使用して、プロジェクトを更新します。
- Magento自体のインストーラーを実行して、データベースを初期化します。
- ディレクトリとファイルの権利を公開します。
構成
展開中、構成は
./deploy_cfg.sh
ファイルから読み取られます(明らかな理由によりバージョン管理下にありません)。 ローカル構成ファイルを作成するためのテンプレートには、2種類のパラメーターが含まれています。
deploy.sh
コマンドラインから開始する magento-installerの設定 。- Magentoアプリケーション(所有者およびグループ)のファイルシステムに対する権利。
追加オプションcomposer.json
追加オプションでは、元のMagento2 CEアプリケーションに以下が追加されます。
- 開発中のモジュール自体。
- Magento2アプリケーションの実装を使用して機能テストを実行する
autoload-dev
命令。 - composerパッケージの最小の安定性を
alpha
からdev
下げます。
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
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プロジェクトを構築するために何も
提供しません(一般的にはそうすべきではありません)。 したがって、このように-シェルと作曲家。
「別の方法で」
このフレーズは、かつて私の目に留まった非常に古い料理本から引用したものです。
責任バウンス
この資料は単なる例であり、理解しないと実際のアプリケーションの展開の基礎として機能することはできません。