タグ付けされた質問 「magento2」

Magento 2に関する一般的な質問。マイナーバージョンに固有ではありません。このタグを使用してMagento 1と区別します。特定のバージョンに問題がある場合は、代わりに適切な「Magento-2.x」タグを使用してください。Magento 2のマイナーバージョン間の機能は異なる場合があります。

7
Magento 2:ObjectManagerを直接使用するかどうか。
それでは、昨日、Magentoコミュニティの他の人たちとinクラス/テンプレートの直接的な使用ObjectManagerに関して大きな話をしました。 Alan Kentを引用して、ObjectManagerを直接使用しない理由をすでに知っています。 いくつかの理由があります。コードは機能しますが、ObjectManagerクラスを直接参照しないことがベストプラクティスです。 そう言うから!;-)(一貫性のあるコードは良いコードとして表現される方が良い) コードは、将来、異なる依存性注入フレームワークで使用される可能性があります テストが簡単になります。モックObjectManagerを提供することなく、必要なクラスのモック引数を渡すことができます。 依存関係をより明確に保ちます -コードの途中で依存関係を非表示にするのではなく、コンストラクターリストを介してコードが依存するものが明らかです カプセル化やモジュール化などの概念をプログラマーがよりよく考えるように促します -コンストラクターが大きくなった場合、コードがリファクタリングを必要とする兆候かもしれません StackExchangeで私が見たものから、多くの人々は、たとえば次のような簡単/短い/推奨されない解決策を求める傾向があります。 <?php //Get Object Manager Instance $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); //Load product by product id $product = $objectManager->create('Magento\Catalog\Model\Product')->load($id); 痛みを伴うが推奨されるプロセスを経る代わりに: モジュールを作成する 設定の宣言 依存関係を注入する パブリックメソッドを宣言する ただし、ジレンマが発生します。Magento2コアファイルは、多くの場合ObjectManagerを直接呼び出します。ここに簡単な例があります:https : //github.com/magento/magento2/blob/develop/app/code/Magento/GoogleOptimizer/Block/Adminhtml/Form.php#L57 だからここに私の質問があります: なぜMagentoは私たちにしないことを勧めているのですか?それは、ObjectManager直接使用する必要がある場合があることを意味しますか?もしそうなら、それらのケースは何ですか? ObjectManagerを直接使用した結果はどうなりますか?

13
Magento 2:Mage :: logメソッドの置換?
Magento 1では、メッセージをログに送信する場合、グローバルMageクラスで静的メソッドを使用します。 Mage::log($message, Zend_Log::DEBUG, "my-log-file.log"); Magento 2に同等のものはありますか?私はdev docsサイトをグーグルで検索しましたが、明らかなものは見当たりません。あります。このInchooの記事では、それはほぼ一年前からだとそんなにはそれ以来変更されました。 Magento 2モジュール開発者として、Magento 1で次のようなコードを置き換えたい場合 Mage::log($message, Zend_Log::DEBUG, "my-log-file.log"); 最低限必要なことは何ですか?
105 magento2  log  psr-logger 

11
test.phpスクリプトでMagento 2をブートストラップするにはどうすればよいですか?
magento 1では、Mage_Core_Model_Appクラスをインスタンス化するだけのファイルを作成し、テスト用に「ダーティ」コードを追加できました。 このようなものtest.php: <?php //some settings error_reporting(E_ALL | E_STRICT); define('MAGENTO_ROOT', getcwd()); $mageFilename = MAGENTO_ROOT . '/app/Mage.php'; require_once $mageFilename; Mage::setIsDeveloperMode(true); ini_set('display_errors', 1); umask(0); //instantiate the app model Mage::app(); //my toy code in here. その後test.php、ブラウザーで呼び出して、自分が何をしているかを確認することができました。 Magento 2でも同じことができますか?
93 magento2  testing 

5
GITおよび展開戦略Magento2プロジェクト
Magento 1では、GITリポジトリをプルするデプロイツールを使用し、次のようなコマンドを実行modman deploy-allして、varディレクトリが書き込み可能であることを確認しました。のために.gitignore私はかなりうまくいったこれを使用しました。 しかし、Magento 2はどうでしょうか? gitignoreが最適に機能するもの、プロジェクトをどのようにデプロイするか、どのコマンドをデプロイの前後に実行する必要があるか。コミュニティからいくつかの洞察を聞くことを楽しみにしています。 質問はしばらくの間開いたままになります
92 magento2 

4
Magento 2のUIコンポーネントグリッドの説明
Magento 2でUIコンポーネントグリッドを作成するために必要な最低限の構成の説明やサンプルはありますか? 私は次のような無数のコアコンポーネントがあることを知っています ./vendor/magento/module-catalog/view/adminhtml/ui_component/product_listing.xml ただし、これらのXMLファイルは広大であり、各ノードが何をするのか、またこれを使用してグリッドをゼロから構築する方法についてはほとんど説明がありません。 このサンプルモジュールもありますが、 フォームの前にあるように見える 各ノードの機能に関するコンテキスト/説明がありません 私は自分のCRUDモデルコレクションのグリッドを構築できる「はじめに」の情報を探しています。

11
Magento 2のインデックス再作成-1つ以上のインデクサーが無効です。Magento cronジョブが実行されていることを確認してください
magento 2の一括操作でインデックスの再作成を行う方法が見つかりませんでした。 cronjobから実行する必要があるようです。Magento 1.x(php shell/indexer.php -reindexall)のように、バックエンドまたはコマンドラインからmagento 2のデータのインデックスを再作成する別の方法はありますか?
78 magento2  reindex  cli 

5
Magento 2でリポジトリとファクトリを使用する場合
Magento 2でいくつかのチュートリアルを行ったところ、少し混乱しました。基本的に、ビジネスエンティティを読み書きできる方法は2つあります。 データを取得する 工場アプローチの使用 $object = $this->myFactory->create(); $object->load($myId); リポジトリアプローチの使用 $repo = $this->myRepository(); $object = $repo->getById($myId); データを保存する 工場アプローチの使用 $object = $this->myFactory->create(); $object->load($myId); $object->setData('something', 'somethingDifferent')->save(); リポジトリアプローチの使用 $repo = $this->myRepository(); $object = $repo->getById($myId); $object->setData('something', 'somethingDifferent'); $repo->save($object); 依存関係注入を使用して、リポジトリとファクトリクラスの両方を注入できることもわかります。これは少なくとも私にとって混乱を招きます。 リポジトリアプローチとファクトリアプローチはいつ使用する必要がありますか?従う必要があるベストプラクティスは何ですか?

13
MagentoはPHP 7に対応していますか?
PHP 7はベータステータスに達し、現在多くのテストが行​​われています。Magentoが昨年「PHP 5.3でのみ実行」から「PHP 5.6と完全に互換」に追いついたことを考えると、Magento 1.xおよびMagento 2に対するPHP 7の互換性をどの程度考慮しているかを知りたいと思います。 私が見つかりました。アンナFilinaすることにより、このポスト彼女は(1.9.2でまだ変わらず)Magentoの1.9.1での1つの問題見つけましたが、Magentoの1は、ユニットテストを持っていないことを考えると、私はこれが唯一の問題だったことを信用していません。 質問は次のとおりです。Magento1に対するPHP 7の互換性は保証されますか?また、Magento 2はおそらくPHP 7で既にテストされているので(自動テストに感謝!)、既知の問題はありますか?

2
Magento 2 @escapeNot認証済み
このコメント/* @escapeNotVerified */は、Magento2のテンプレートファイルで頻繁に見られます。 特別な意味がありますか? これに用途はありますか? 例: https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml#L23 https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml#L10 https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/gallery.phtml#L12 ここでいくつかのページに進むことができます。

7
Magento 2再インデックスプロセスのロックを解除する方法
Magentoの再インデックスプロセスでいくつかのテストを行っており、株価インデックスプロセスをロックしています。 このプロセスのロックを解除するにはどうすればよいですか? Design Config Grid index has been rebuilt successfully in 00:00:02 Customer Grid index has been rebuilt successfully in 00:00:03 Category Products index has been rebuilt successfully in 00:00:00 Product Categories index has been rebuilt successfully in 00:00:00 Product Price index has been rebuilt successfully in 00:00:00 Product EAV …


12
Magento 2フォルダー/ファイルのアクセス許可
Magento 2のインストールで権限が台無しになったのではないかと思います。古いバージョンでは、次のコマンドを実行してフォルダー755とファイル644を作成します。 find . -type f -exec chmod -c 644 {} \; && find . -type d -exec chmod -c 755 {} \; Magento 2の正しいファイルとフォルダーのアクセス権は異なるようですので、教えてください。また、異なるアクセス許可が必要な特定のフォルダーまたはファイルがある場合。


4
抽象モデルの非推奨の保存およびロードメソッド
Magento 2リポジトリの開発ブランチでは、メソッドloadとsavefrom Magento\Framework\Model\AbstractModelクラスが非推奨になっていることがわかります。 しかし、コアには、このクラスを拡張してandを使用する膨大な数のクラスがsaveありloadます。 エンティティのCRUD部分に独自のモジュールを作成するとき、コアモジュールと同じガイドラインに従います。 しかし、これらのメソッドは非推奨であるため、将来に備えたいと思います。 それらの代わりに何を使うべきですか?または、他の何かを拡張する必要がありますか?

8
Magento 2でカスタムログファイルを作成する方法
Magento 1では、ログを異なるファイルに分割することが一般的でした(支払い方法などのログを分離するため)。これは、の$fileパラメーターを変更するのと同じくらい簡単ですMage::log。 Magento 2はMonologを使用するように変更されました。 Monolog(またはMagento2の実装)は、フレームワーク全体のすべてのログを重大度別にハンドラーに分割しているようです。ファイルに書き込むいくつかのハンドラーがあります。 \Magento\Framework\Logger\Handler\Debug、\Magento\Framework\Logger\Handler\Exception、\Magento\Framework\Logger\Handler\System Magento 1の場合のように、var / logの各ファイルにログを記録します。 特定の重大度(IE、通知をに書き込むvar/log/notice.log)のハンドラーを追加できます。拡張し\Magento\Framework\Logger\Handler\Base、ハンドラーをに登録しdi.xmlます。 この記事では、そのプロセスについておおまかに説明します。http://semaphoresoftware.kinja.com/how-to-create-a-custom-log-in-magento-2-1704130912 しかし、1つのクラス(Magentoのすべてではない)のすべてのログ(1つの重大度だけでなく)を選択したファイルに書き込むにはどうすればよいですか? の独自のバージョンを作成する必要があるように見えますがMagento\Framework\Logger\Monolog、それが実際に機能するためにはすべてがどのように組み合わされますか? これがMagento 2の大きなNo-Noの場合、代替手段は何ですか?クライアントサイトで必要に応じてデバッグするために、この拡張機能のログを分離するものが必要です。その情報をsystem.log、exception.logなどに書き込んで、他のすべてのモジュールのログと混ぜることは実用的ではありません。
57 magento2  log  logging 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.