magento php 所需模块,magento博客 - Magento2 创建基本模块
我們將在Magento 2中創建一個簡單的模塊,完成后,模塊將在自定義前端路由的內容中顯示“Hello world!”。
先決條件
毋庸置疑,您需要最新的Magento 2版本
在我們開始Magento 2模塊開發之前,有兩件事是人們經常忘記的,我們建議你們去做:
1.禁用Magento緩存
在開發期間禁用Magento緩存將節省您一些時間,因為每次更改代碼時都不需要手動刷新緩存。
禁用緩存的最簡單方法是轉到?Admin → System → Cache Management → select all cache types禁用它們。
2.將Magento設為開發者模式
您應該將Magento設為開發者模式,以確保您能看到出現的所有錯誤。
所以請打開終端并轉到Magento 2根目錄,然后運行以下命令:
php bin/magento deploy:mode:set developer
創建模塊文件和文件夾
模塊設置
如果您已經使用了Magento 1版本,那么您已經習慣了術語代碼池——位于app/code文件夾中的社區、核心和本地文件夾。在MaGeto 2中,沒有更多的代碼池。模塊按命名空間分組,直接放置在App/code文件夾中。
如果您使用過Magento 1版本,那么您已經習慣了代碼池 - 位于app/code文件夾中的community,core和local文件夾。在Magento 2中,沒有更多的代碼池。模塊按命名空間分組,并直接放在app/code文件夾中。
因此,我們的第一步是創建注冊Magento模塊所需的模塊文件夾和必要文件。
1.創建以下文件夾:
app/code/Magease
app/code/Magease/Helloworld
Magease文件夾是模塊的命名空間,Helloworld是模塊的名稱。
注意:如果您的app目錄中沒有代碼文件夾,請手動創建它。
2.現在我們有了一個模塊文件夾,我們需要使用以下代碼在app/code/Magease/Helloworld/etc文件夾中創建一個module.xml文件:
3.要注冊模塊,在app/code/Magease/Helloworld文件夾中創建registration.php文件并添加以下代碼:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magease_Helloworld',
__DIR__
);
4.打開終端并轉到Magento 2根目錄,運行以下命令:
php bin/magento setup:upgrade
如果要確保模塊已安裝,可以轉到Admin_Stores_Configuration_Advanced_Advanced并檢查模塊是否存在于列表中,或者可以打開app/etc/config.php并檢查數組中的“Magease_Helloworld”鍵,該鍵的值應該設置為1。
創建一個控制器
1.首先我們需要定義路由,在app/code/Magease/Helloworld/etc/frontend文件夾中創建routes.xml文件并添加以下代碼:
在這里,我們使用id為“helloworld”定義我們的前端路由器和路由。
該frontName屬性將是我們的URL的第一部分。
在Magento 2中,URL以這種方式構造:
//
因此在我們的示例中,最終的URL將如下所示:
helloworld/index/index
2.現在我們在app/code/Magease/Helloworld/Controller/Index文件夾下創建的index.php文件并添加以下代碼:
namespace Magease\Helloworld\Controller\Index;
use Magento\Framework\App\Action\Context;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_resultPageFactory;
public function __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
$resultPage = $this->_resultPageFactory->create();
return $resultPage;
}
}
在Magento 1中,每個控制器可以有多個action,但在Magento 2中并非如此。在Magento 2中,每個action都有自己的類,它執行了execute()方法。
創建一個塊
我們將使用getHelloWorldTxt()方法創建一個簡單的塊類,該方法返回“Hello world”字符串。
1.在app/code/Magease/Helloworld/Block文件夾中創建Helloworld.php文件并添加以下代碼:
namespace Magease\Helloworld\Block;
class Helloworld extends \Magento\Framework\View\Element\Template
{
public function getHelloWorldTxt()
{
return 'Hello world!';
}
}
創建布局和模板文件
在Magento 2中,布局文件和模板放置在模塊內的視圖文件夾中。在視圖文件夾中,我們可以有三個子文件夾:adminhtml,base和frontend。
adminhtml文件夾用于admin,frontend文件夾用于前端,base文件夾用于admin和frontend文件。
1.首先,我們將在app/code/Magease/Helloworld/view/frontend/layout文件夾中創建helloworld_index_index.xml文件,添加以下代碼:
每個頁面都有一個布局,對于我們的控制器action,布局句柄是helloworld_index_index。您可以為每個布局句柄創建布局配置文件
在我們的布局文件中,我們向content容器中添加了一個塊,并將塊的模板設置為helloworld.phtml,我們將在下一步中創建它。
2.在app/code/Magease/Helloworld/view/frontend/templates文件夾中創建helloworld.phtml文件并添加以下內容:
<?php echo $this->getHelloWorldTxt(); ?>
$this變量正在對block類進行重新設置,執行getHelloWorldTxt()方法將返回字符串“Hello world!”。
在瀏覽器中打開/helloworld/index/indexURL,您會看到以下內容:
總結
以上是生活随笔為你收集整理的magento php 所需模块,magento博客 - Magento2 创建基本模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5 css 三角形,css怎么画
- 下一篇: 订阅号 笔记记录开发 php,微信订阅号