回答:
これは幅広い質問ですが、私の最良のアドバイスは、公式のMagento 2サンプルを確認することです。
あなたはここでそれらを見つけることができます:https://github.com/magento/magento2-samples
このプロジェクトは、Magento 2で導入されたテクノロジーを示すサンプルのコレクションです。Magento2プラットフォームの調査と教育を行うための機能を徐々に追加するサンプルとともに、最も単純な拡張機能が見つかります。
その上、Googleで「magento 2 create module」を検索すると、多くのチュートリアルを見つけることができます
モジュールに名前を付けましょうStackExchange_HelloWorld
。
これらのファイルが必要になります。
app/code/StackExchange/HelloWorld/registration.php
-登録ファイル
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
-モジュール宣言ファイル
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="StackExchange_HelloWorld" setup_version="2.0.0" />
</config>
app/code/StackExchange/HelloWorld/etc/frontend/routes.xml
-フロントエンドルーティングファイル
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="helloworld" frontName="helloworld">
<module name="StackExchange_HelloWorld" />
</route>
</router>
</config>
app/code/StackExchange/HelloWorld/Controller/Index/Index.php
-インデックスコントローラ
<?php
namespace StackExchange\HelloWorld\Controller\Index;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
public function __construct(
Context $context,
PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('Hello World'));
return $resultPage;
}
}
app/code/StackExchange/HelloWorld/view/frontend/layout/helloworld_index_index.xml
-レイアウトファイル
<?xml version="1.0"?>
<page layout="2columns-left" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" template="StackExchange_HelloWorld::index.phtml" />
</referenceContainer>
</body>
</page>
app/code/StackExchange/HelloWorld/view/frontend/templates/index.phtml
-ブロックのテンプレート
<h2>Hello World</h2>
完了したら、コンソールでこれを実行します
php bin / magento setup:upgrade
あなたはURLで結果を見ることができるはずです [ROOT]/helloworld
routes.xml
ファイルには、中に配置する必要がありapp/code/StackExchange/HelloWorld/etc/frontend
ませんでapp/code/StackExchange/HelloWorld/frontend
。etc
欠品がありました。そしてuse
、コントローラファイルの2つの句を忘れました。私の更新の答えを見てください。
私も昨日試してみて、自分のhello world magento 2モジュールを作成することに成功しました。このチュートリアルに従ってシンプルなMagento 2モジュールを作成しました。以下の6つのステップがあります。
=>ステップ1:モジュールフォルダを作成します。
app / code / Magentoexplorer / Helloworld
=>ステップ2:module.xmlを追加してモジュールをクリアする
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Magentoexplorer_Helloworld" setup_version="1.0.0" />
</config>
=>ステップ3:registration.phpを作成してモジュールを登録する
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=>ステップ4:モジュールのインストール、有効化、無効化/削除の方法
cd [magento_directory]
php bin/magento setup:upgrade
=>ステップ5:モジュールのルート。つくるapp/code/Magentoexplorer/Helloworld/etc/frontend/routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="magentoexplorer" frontName="helloworld">
<module name="Magentoexplorer_Helloworld" />
</route>
</router>
</config>
=>ステップ6:コントローラーとアクション。
app / code / Magentoexplorer / Helloworld / Index / Index.php
<?php
namespace Magentoexplorer\Helloworld\Controller\Index;
class Display extends \Magento\Framework\App\Action\Action
{
public function __construct(
\Magento\Framework\App\Action\Context $context)
{
return parent::__construct($context);
}
public function execute()
{
echo 'Hello World';
exit;
}
}
フォローするのに最適なモジュールは次のモジュールです:https : //github.com/magento/magento2-samples/tree/master/sample-module-newpage
Magento 2のフロントエンドに焦点を当てています。このモジュールを使用して、独自のモジュールに変換できます。
最も裸のモジュールは十分簡単です:
app/code
にベンダーとモジュールのフォルダを作成します。すなわちapp/code/MyCompany/FirstModule
内部のFirstModule
フォルダの追加Aregistration.php
DIR);
同じフォルダetc
内に、次のようなフォルダを作成しますapp/code/MyCompany/FirstModule/etc
etc
フォルダに作成しますmodule.xml
そして出来上がり。それでおしまい。bin/magento module:enable MyCompany_FirstModule
次のコマンドを使用して、SSH経由でモジュールをアクティブ化できます。
以下は簡単なモジュールのチュートリアルです
https://www.mageplaza.com/magento-2-module-development/
以下のモジュールもダウンロードできます
https://github.com/tzyganu/Magento2SampleModule
Magento 2で利用できるモジュールクリエーターはたくさんあります。ここにいくつかのリンクがあります
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
それが役に立てば幸い :)
Magento 2でモジュールを作成するには、次の手順が必要です。
最高の使用のためにPHPストーム
PHPストームを使用するベストプラクティス
ステップ1:Hello Worldモジュールのフォルダーを作成する
ステップ2:モジュールを作成する
ステップ3:作成したモジュールを登録する
ステップ4:モジュールを有効にする
モジュールの名前は「VendorName_ModuleName」として定義されます。最初の部分はベンダーの名前で、最後の部分はモジュールの名前です。例:Sathya_HelloWorld。
#####次のファイルディレクトリを作成
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
内容は次のとおりです。
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Sathya_HelloWorld" setup_version="1.0.0">
</module>
</config>
Registration.phpファイルを作成する
app/code/Sathya/HelloWorld/registration.php
内容は次のとおりです。
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
モジュールを有効にする前に、モジュールが作成されているかどうかを確認してください。そのためには、Magentoのルートディレクトリからコマンドを実行します。
php bin/magento module:status
無効になっているすべてのモジュールが一覧表示されます
###### Sathya_HelloWorld
モジュールを有効にするには、次のようにコマンドを実行します。
php bin/magento module:enable Sathya_HelloWorld
また、これを有効にする別の方法もあります。これについては後で説明します。
データベースをアップグレードしてください:Magentoルートディレクトリから「bin / magento setup:upgrade」を実行します。
コマンドを実行してみましょう:
php bin/magento setup:upgrade
実行してください
php bin/magento setup:static-content:deploy
次に実行します(オプション)
php bin/magento setup:static-content:deploy -f
ルートを追加するには、routes.xmlファイルを作成する必要があります
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
コンテンツは次のようになります:
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route frontName="helloworld" id="helloworld">
<module name="Sathya_HelloWorld"/>
</route>
</router>
</config>
作成する必要があるディレクトリとファイルは次のとおりです。
app/code/Sathya/HelloWorld/Controller/Index/Test.php
内容は次のとおりです。
<?php
namespace Sathya\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}
完了したら、コマンドを実行してキャッシュをクリアしてください
php bin/magento c:f
URLを入力してモジュールを確認すると、次のようになります。
http://< YourDomain.com >/helloworld/index/test