Magento 2에서 Hello World 확장을 만드는 방법
게시 됨: 2017-04-25우리는 Magento 2에서 매우 간단한 확장을 빌드할 것입니다. 완료되면 확장의 출력은 "Hello Weblizar, 이것은 첫 번째 Hello World Magento Extension입니다! " 사용자 정의 프론트엔드 경로의 블록 콘텐츠에 있습니다. hello world를 출력으로 사용하여 magento 2에서 확장 기능을 만드는 방법을 알아보겠습니다.
요구 사항 :
목록에는 현재 2.1인 최신 Magento 2 버전이 있습니다. 로컬 시스템에 설치됩니다.
Magento 2 확장 개발을 시작하기 전에 사람들이 종종 잊어버리는 두 가지 사항이 있으며 다음을 수행하는 것이 좋습니다.
1. Magento 캐시 비활성화
개발 중에 Magento 캐시를 비활성화하면 코드를 변경할 때마다 캐시를 수동으로 플러시할 필요가 없기 때문에 시간을 절약할 수 있습니다.
캐시를 비활성화하는 가장 쉬운 방법은 관리자 => 시스템 => 캐시 관리 => 모든 캐시 유형을 선택하고 비활성화하는 것입니다.
2. Magento를 개발자 모드로 전환
Magento가 던지는 모든 오류를 보려면 Magento를 개발자 모드로 전환해야 합니다.
이렇게 하려면 터미널을 열고 Magento 2 루트로 이동합니다. 거기에서 다음 명령을 실행해야 합니다.
php bin/magento 배포: 모드: 개발자 설정
Magento에서 확장을 만드는 방법:
확장 파일 및 폴더 만들기:
확장 설정
첫 번째 단계는 Magento 확장을 등록하는 데 필요한 확장 폴더와 필요한 파일을 만드는 것입니다.
1. 다음 폴더를 만듭니다.
- 앱/코드/Weblizar
- 앱/코드/Weblizar/Helloworld
Weblizar 폴더는 확장 네임스페이스이고 Helloworld는 확장 이름 입니다.
참고: 앱 디렉토리에 코드 폴더가 없으면 수동으로 만드십시오.
2. 이제 확장 폴더가 있으므로 다음 코드를 사용하여 app/code/Weblizar/Helloworld/etc 폴더에 module.XML 파일을 생성해야 합니다.
<?xml 버전=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
<module name=”Weblizar_Helloworld” setup_version=”1.0.0″></module>
</구성>
3. 모듈을 등록하려면 다음 코드를 사용하여 app/code/Weblizar/Helloworld 폴더에 registration.php 파일을 만듭니다.
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'웨블리자_헬로월드',
__디렉토리__
); ?>
4. 터미널을 열고 Magento 2 루트로 이동합니다. 거기에서 다음 명령을 실행하십시오.
php bin/magento 설정:업그레이드
확장 프로그램이 설치되어 있는지 확인하려면 관리 => 상점 => 구성 => 고급 => 고급으로 이동하여 확장 프로그램이 목록에 있는지 확인하거나 app/etc/config.php를 열 수 있습니다. 값을 1로 설정해야 하는 'Weblizar_Helloworld' 키의 배열을 확인합니다.
컨트롤러 만들기
1. 먼저 라우터를 정의해야 합니다. 이렇게 하려면 다음 코드를 사용하여 app/code/Weblizar/Helloworld/etc/frontend 폴더에 route.XML 파일을 만듭니다.
<?xml 버전=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:App/etc/routes.xsd”>
<라우터 ID=”표준”>
<경로 ID=”helloworld” frontName=”helloworld”>
<모듈 이름=”Weblizar_Helloworld” />
</경로>
</라우터>
</구성>
여기서 우리는 id가 "helloworld"인 프론트엔드 라우터와 경로를 정의하고 있습니다.
frontName 속성은 URL의 첫 번째 부분이 될 것입니다.

Magento 2에서 URL은 다음과 같이 구성됩니다.
<프론트 이름>/<컨트롤러_폴더_이름>/<컨트롤러_클래스_이름>
따라서 이 예에서 최종 URL은 다음과 같습니다.
헬로월드/인덱스/인덱스
2. 이제 다음 코드를 사용하여 app/code/Weblizar/Helloworld/Controller/Index 폴더에 Index.php 컨트롤러 파일을 생성합니다.
<?php
네임스페이스 Weblizar\Helloworld\Controller\Index;
Magento\Framework\App\Action\Context를 사용하십시오.
클래스 인덱스는 \Magento\Framework\App\Action\Action을 확장합니다.
{
보호된 $_resultPageFactory;공개 함수 __construct(컨텍스트 $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
부모::__construct($context);
}공개 함수 실행()
{
$resultPage = $this->_resultPageFactory->create();
$resultPage 반환;
}
}
Magento 2에서 모든 작업에는 execute() 메서드를 구현하는 자체 클래스가 있습니다.
블록 생성
"Hello world" 문자열을 반환하는 getHelloWorldTxt() 메서드를 사용하여 간단한 블록 클래스를 만듭니다.
1. 다음 코드를 사용하여 app/code/Weblizar/Helloworld/Block 폴더에 Helloworld.php 파일을 생성합니다.
<?php
네임스페이스 Weblizar\Helloworld\Block;클래스 Helloworld는 \Magento\Framework\View\Element\Template을 확장합니다.
{
공개 함수 getHelloWorldTxt()
{
return 'Hello Weblizar, 이것은 첫 번째 hello world magento Extension입니다!';
}
}
레이아웃 및 템플릿 파일 생성
Magento 2에서 레이아웃 파일과 템플릿은 확장 프로그램 내부의 보기 폴더에 있습니다. 보기 폴더 안에는 adminhtml, base 및 frontend의 세 가지 하위 폴더가 있습니다.
adminhtml 폴더는 admin에 사용되고, 프런트엔드 폴더는 프런트엔드에 사용되며 기본 폴더는 관리 및 프런트엔드 파일 모두에 사용됩니다.
1. 먼저 app/code/Weblizar/Helloworld/view/frontend/layout 폴더에 helloworld_index_index.XML 파일을 다음 코드로 생성합니다.
<페이지 xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”../../../../../../../lib /내부/마젠토/프레임워크/
보기/레이아웃/etc/page_configuration.xsd” 레이아웃=”1열”>
<본체>
<참조컨테이너 이름=”콘텐츠”>
<block class=”Weblizar\Helloworld\Block\Helloworld” name=”helloworld” 템플릿=”helloworld.phtml” />
</reference컨테이너>
</바디>
</페이지>
모든 페이지에는 레이아웃 핸드가 있으며 컨트롤러 작업의 경우 레이아웃 핸들은 helloworld_index_index입니다. 모든 레이아웃 핸들에 대한 레이아웃 구성 파일을 생성할 수 있습니다.
레이아웃 파일에서 콘텐츠 컨테이너에 블록을 추가하고 블록의 템플릿을 다음 단계에서 생성할 helloworld.phtml로 설정했습니다.
2. 다음 코드를 사용하여 app/code/Weblizar/Helloworld/view/frontend/templates 폴더에 helloworld.phtml 파일을 생성합니다.
<h1><?php echo $this->getHelloWorldTxt(); ?></h1>
$이 변수는 블록 클래스를 참조하고 있으며 'Hello world!' 문자열을 반환하는 getHelloWorldTxt() 메서드를 호출하고 있습니다.
그리고 그게 다야. 브라우저에서 /helloworld/index/index URL을 열면 다음과 같이 표시되어야 합니다.
Hello World 마젠토 확장 프로그램을 다운로드하려면 여기를 클릭하십시오.