프런트엔드 뷰 작성 방법

6427 단어 PHPMagento2

전면 뷰


이 테마에서 블록, 레이아웃, 템플릿을 포함한 Magento2 보기를 알 수 있습니다.이전 주제 루트와 컨트롤러를 생성합니다.아시다시피 보기는 출력 페이지의 표시에 사용됩니다.
Magento2에서 보기는 세 가지 경로로 생성됩니다.
- 블록
- 배치
- 템플릿
창설된 모듈의 간단한 보기를 구축하여 창설하는 방법을 찾을 수 있습니다이전 주제

컨트롤러 생성


먼저 레이아웃 파일.xml을 호출하는 컨트롤러를 만듭니다.
Karabiner/HelloMagento2/Controller/SomethingElse/Index.php
<?php

namespace Karabiner\HelloMagento2\Controller\SomethingElse;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;

class Index extends Action
{
    /**
     * @var PageFactory
     */
    private $pageFactory;

    public function __construct(Context $context, PageFactory $pageFactory)
    {
        parent::__construct($context);
        $this->pageFactory = $pageFactory;
    }

    /**
     * call Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index layout
     */
    public function execute()
    {
        return $this->pageFactory->create();
    }

}

레이아웃 파일 만들기(.xml)


레이아웃은 Magento2 모듈의 뷰레이어의 주요 경로입니다.레이아웃 파일은 XML 파일로 {MAGENTO_DIRECTORY}/view/{area}/layout/ 폴더에 있습니다.
영역 경로는 frontend 또는 adminhtml (admin 대시보드) 레이아웃을 정의하는 위치입니다.
레이아웃 파일 형식은 {ルーターID} _ {コントローラー名} _ {アクション名}.xml 형식입니다.
렌더링 페이지의 경우 Magento는 레이아웃 파일을 검사하여 페이지의 핸들을 찾고 블록과 템플릿을 로드합니다.이 모듈의 레이아웃 핸들 파일을 만듭니다.
파일: app/code/Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index.xml
app/code/Karabiner/HelloMagento2/view/frontend/layout/hellomagento2_somethingelse_index.xml
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" 
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Karabiner\HelloMagento2\Block\SomethingElse" name="hello_magento2_display" 
                   template="Karabiner_HelloMagento2::hello_world.phtml" />
        </referenceContainer>
    </body>
</page>

블록 파일 만들기


↑ 파일은 이 페이지의 블록과 템플릿을 정의합니다.
class(블록 클래스): HelloMagento2\HelloMagento2\Block\SomethingElse
블록 클래스는 템플릿 파일에 데이터를 제공하는 클래스입니다.
템플릿 파일:Karabiner_HelloMagento2::hello_world.phtml
파일 이름은 두 부분입니다.
  1. Karabiner_HelloMagento2: 참조 Karabiner/HelloMagento2/view/frontend/templates  2. hello_world.phtml: 위 폴더의 위치는 SomethingElse/ hello_world.phtml 입니다.
 
이름: 블록을 참조로 식별하는 데 필요한 속성입니다.

템플릿 파일 만들기


hello_world.phtml라는 템플릿 파일 만들기app/code/Karabiner/HelloMagento2/view/frontend/templates/hello_world.phtml다음 코드 추가
app/code/Karabiner/HelloMagento2/view/frontend/templates/hello_world.phtml
<?php

/**
 * @var \Karabiner\HelloMagento2\Block\SomethingElse $block
 */
?>

<?= $block->sayHi() ?>
레이아웃 파일에서 템플릿은 Karabiner_HelloMagento2::hello_world.phtml 정의됩니다.이것은 Magento가 모듈Karabiner_HelloMagento2의 템플릿 폴더에서 파일 이름hello_world.phtml을 찾을 수 있음을 의미합니다.모듈의 템플릿 폴더는 app/code/{vendor_name}/{module_name}/view/frontend/templates/ 입니다.
템플릿 파일에서 블록 객체는 변수 "$block"을 사용할 수 있습니다.보시다시피 Block에서 메서드sayHi()를 호출합니다.완료됨
레이아웃이나 phtml를 변경한 후cache:clean 명령줄을 실행해야 합니다
MAGENTO_DIRECTORY
bin/magento cache:clean
이 페이지를 다시 방문하십시오.
( http://[MAGENTO_URL]/custom_router_name/somethingelse ) and see the result.

좋은 웹페이지 즐겨찾기