Magento

Magento eコマースプラットフォームのユーザー向けのQ&A

3
サービス契約よりも$ model-> load()を好む理由はありますか?
Magento 2のモジュール間で作業する好ましい方法は、サービスコントラクトを使用することです。 したがって、製品をロードする場合は、製品リポジトリを使用します。 $product = $productRepository->getById($id); これは、契約によりのインスタンスを返しますMagento\Catalog\Api\Data\ProductInterface。 しかし、代わりに古い方法を使用して、ドメイン層を直接呼び出すこともできます。 $product = $productFactory->create()->load($id); これが必要または有用になるケースはありますか? devdocsの発言(ハイライト追加): モジュールは別のモジュールを直接呼び出すことができます。この密結合ソリューションは、ほとんどの状況では推奨されませんが、避けられない場合があります。 [...] 別のモジュールのドメイン層コードを呼び出すための戦略は、システムの固有の構成とニーズに大きく依存します。 ソース:http : //devdocs.magento.com/guides/v2.0/architecture/archi_perspectives/domain_layer.html また、関連する質問に対するコメントは次のように述べています。 リポジトリを使用すると、製品データモデル(Api/Data/Product)が得られます。これは、縮約されたDTOに変換された製品モデルです。考慮すべきこと しかし、私が見る限り、オブジェクトは通常の条件下で同じであり、phpDocごとの戻り値の型が異なるだけです(Magento\Catalog\Api\Data\ProductInterface/ Magento\Catalog\Model\Product)

2
Magento 2オブジェクトリポジトリのフィルタリング
Magento 2では、製品リポジトリを使用して製品属性でフィルタリングできますか? Magento 2では、検索条件オブジェクトを使用できます \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria, およびリポジトリ \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, オブジェクトのリストを取得するには $searchCriteria->getPageSize(10); $list = $productRepository->getList($searchCriteria); ただし、searchCriteriaオブジェクトには、直接フィルタリング機能はありません(と思われますか?)。検索条件クラスには、filterGroupsと呼ばれるものを追加するためのメソッドがあります #File: lib/internal/Magento/Framework/Api/SearchCriteria.php public function getFilterGroups() { $filterGroups = $this->_get(self::FILTER_GROUPS); return is_array($filterGroups) ? $filterGroups : []; } public function setFilterGroups(array $filterGroups = null) { return $this->setData(self::FILTER_GROUPS, $filterGroups); } しかし、PHPの型指定されていない配列のおかげで、正確にフィルターグループが何であるかは明確ではありません。 Magento 2リポジトリを使用して次のようなことを行うにはどうすればよいですか [この特定のSKU]を持つすべての製品を表示する [この日付]以降に作成されたすべての製品を表示する 等

11
Magento 2レビューを無効にする方法
Magento 2製品レビュー機能を無効にしようとしています。Magento 2 admin Stores \ Advanced \ Advanced \ Magento_Reviewでモジュールを無効にしようとしましたが、各製品のレビュータブはまだあります。無効にする方法はありますか?Magento 1で無効にできることは確かです。

3
引用オブジェクトを読み込めません
sales/quoteロード時に、オブジェクトは他のオブジェクトとは異なる動作をしますか?以下を参照してください。 作品: $quote = Mage::getModel('sales/quote')->getCollection() ->addFieldToFilter('entity_id', $quoteId) ->getFirstItem(); print_r($quote->getData()); // shows right data 動作しません: $quote = Mage::getModel('sales/quote')->load($quoteId); print_r($quote->getData()); // empty どちら$quoteも正しいクラスですMage_Sales_Model_Quote。
24 sales  quote  ee-1.12 

6
アップグレード後に静的コンテンツがロードされない
Magento 2.1.0からMagento 2.1.3(コンポーザーを使用)にアップグレードした後、静的コンテンツがロードされなくなりました。ブラウザコンソールで、すべてのファイルが使用できないことを確認できます(404): 私は名前のディレクトリが表示されないversion*でpubディレクトリ。 私がすでに作ったものの、助けにはならなかった: すべての権限を777に設定しますが、成功しません。 消去されたキャッシュ 削除しました pub/static/* 静的コンテンツを数回再生成しました .htaccess(pub/staticディレクトリ内の)ファイルを公式リポジトリのファイルに置き換えました。 別の情報: mod_rewrite 有効になっています FollowSymLinks許可されます(デフォルトのホスト構成およびローカルで.htaccess) この構成は、2.1.3に更新する前のMagento 2.1.0で正常に機能しました。 pub/static 書き込み可能です 助言がありますか?


5
透かしが透明なときに背景が黒くなる
magento 1.9.2.4ショップにPATCH SUPEE 9767をインストールしました。 新しい透かしをアップロードしましたが、背景が黒に変わります。 これは新しいアップデート以降の問題ですか?更新がインストールされていない他のmagento 1.9.2.4インストールでは、バックグラウンドはまだ透明です。

2
Magento 2:標準のGrid.phpよりもUIグリッドコンポーネントを使用する利点は何ですか?
そのため、Magento 2はUIコンポーネントを導入しました。 それらの1つはUIコンポーネントグリッドです(詳細については、Magento 2のUIコンポーネントグリッドの説明を参照してください)。 カスタムモジュールを作成するとき、古いMagento 1のメソッドにこだわってGrid.php、adminhtmlグリッドを処理するファイルを作成しました。 Grid.phpメソッドの代わりにUIコンポーネントグリッドを使用する利点は何ですか?

2
Magento 2のPHPUnit 4.1でPHP7コードを単体テストする適切な方法は何ですか?
モジュールを作成するとき、アプリケーションの最も重要な部分の単体テストをモジュールに提供しようとしています。ただし、現時点(Magento 2.1.3)では、単体テストの作成方法についていくつかの方法があります。 さまざまなテスト方法 それを統合し、bin/magento dev:tests:run unitMagentoにバンドルされているデフォルトのphpunit設定の上で実行します。 それらを別々にvendor/bin/phpunit app/code/Vendor/Module/Test/Unit記述し、実行して、Magentoであるすべてをモックします。 それらを個別に記述し、すべてをモックし、PHPUnitのシステムグローバルバージョンを使用します。 それらを別々に記述し、で実行しますがvendor/bin/phpunit、それでも利用し\Magento\Framework\TestFramework\Unit\Helper\ObjectManagerます。 Magento 2およびPHPUnit それに加えて、Magento 2にはPHPUnit 4.1.0がバンドルされており、PHP7互換ではありません。ネイティブ型(stringおよびintなど)を型ヒントし、署名で戻り値の型を宣言すると、エラーがスローされます。たとえば、次のようなメソッドシグネチャを持つインターフェイス/クラス: public function foo(string $bar) : bool; ... PHPUnit 4.1.0でモックすることはできません。:-( 私の現在の状況 このため、私はほとんどの場合、3番目の方法(システムグローバルなPHPUnitバージョンを呼び出すこと)で単体テストを書いています。 私の設定では、PHPUnit 5.6がグローバルにインストールされているため、適切なPHP7コードを記述して解決できますが、いくつかの調整が必要です。例えば: phpunit.xml コンポーザーオートローダーを使用できるように、次のようにする必要があります。 <?xml version="1.0"?> <phpunit bootstrap="../../../../../../vendor/autoload.php" colors="true"> <testsuites> <testsuite name="Testsuite"> <directory>.</directory> </testsuite> </testsuites> </phpunit> ...そして、私のすべての- setUp()メソッドでは、次のチェックを行っているので、前方互換性でテストを書くことができます: // Only allow PHPUnit 5.x: if …

6
Mage :: log()が新しいMagentoアップデート(1.9.4.1)で機能しない
この新しい更新(1.9.4.1)の後、Mage :: log()は機能しません。どうやら、それはZend_Validate_File_ExtensionMage.phpの819行目と関係があるようis_readable()です。log()メソッド全体を以前のバージョンに戻し、再び機能します。 この問題を報告するためにMagentoチームに連絡できるメインチャンネルは何ですか?

2
クラスのコンストラクターDIでのContext Objectの目的は何ですか?コンテキストの仕組み
クラスのコンストラクタのほとんどでは、Contextオブジェクトが渡されます。このContext Objがどのように機能するか理解できませんでした。また、これは以下のように親クラスのコンストラクターに渡される場合があることに気付きました。 public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogDesign, \Magento\Catalog\Model\Session $catalogSession, .... parent::__construct( $context, $layoutFactory, この特定のコンテキストオブジェクトがどのように機能するか説明してください。

5
brewパッケージを介してOS XでFastCGI(mod_phpではなく)を介してMagento 2を実行する
一部の人々が使用していないPHP環境を経由してOS X上のMagentoの2の開発インスタンスを実行しているように、コミュニティ内のさまざまなフォーラムの投稿や会話に基づいて、それが思わApacheの/ PHPのコンボを内蔵し、代わりにパッケージを使用してbrew取得しますnginxおよび/またはでFastCGI PHP環境が稼働しているapache。 brewパッケージを使用してMagento 2をOS Xで起動して実行するためのコマンドと設定手順のリストや、OS X のFastCGI環境でPHPを実行する他の手段はありますか?私はDockerやVagrantを探していません。OSXでPHPをネイティブに実行したいのですが、使いたくありませんmod_php。
23 magento2  php 


1
Magento 2:すべてのページの<head>に任意のHTMLを追加しますか?
Magento 2では、すべてのフロントエンド/カートページに任意のビットのHTMLを追加できます&lt;head/&gt;か? 私は&lt;body&gt;このようなコードでコンテンツ/ エリアにブロックを追加できることを知っています &lt;page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"&gt; &lt;body&gt; &lt;referenceBlock name="content"&gt; &lt;block type="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/&gt; &lt;/referenceBlock&gt; &lt;/body&gt; &lt;/page&gt; ただし、&lt;head/&gt;ページの要素にコンテンツを追加するための同様のブロックがあるかどうかは明らかではありません。私はdev docsサイトとソースコードを調べましたが、タグで使用できる新しいタグへの参照がたくさんあります&lt;head/&gt; &lt;head&gt; &lt;css.../&gt; &lt;js.../&gt; &lt;/head&gt; しかし&lt;head/&gt;、Magento 2のページのセクションに任意のhtml / textを追加する方法のリファレンスは見つかりません。
23 php  layout  magento2 


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