Magento 2'de Merhaba Dünya Uzantısı Nasıl Oluşturulur

Yayınlanan: 2017-04-25

Magento 2'de çok basit bir uzantı oluşturacağız. Bittiğinde, uzantının çıktısı ” Merhaba Weblizar, Bu ilk merhaba dünyanız Magento Uzantısı! ” özel bir ön uç yolundaki blok içeriğinde. Çıktımız olarak merhaba dünya ile magento 2'de bir uzantı oluşturmayı öğrenelim.

Gereklilik :

Listede, şu anda 2.1 olan en son Magento 2 sürümünüz var. Yerel sisteminize kurulur.

Magento 2 eklenti geliştirmesine başlamadan önce, insanların sıklıkla unuttuğu iki şey var ve yapmanızı tavsiye ediyoruz:

1. Magento önbelleğini devre dışı bırakın

Geliştirme sırasında Magento önbelleğini devre dışı bırakmak size biraz zaman kazandıracaktır çünkü kodunuzda her değişiklik yaptığınızda önbelleği manuel olarak temizlemeniz gerekmeyecektir.

Önbelleği devre dışı bırakmanın en kolay yolu Yönetici => Sistem => Önbellek Yönetimi => tüm önbellek türlerini seçip devre dışı bırakmaktır.

2. Magento'yu geliştirici moduna alın

Magento'nun size attığı tüm hataları görmenizi sağlamak için Magento'yu geliştirici moduna almalısınız.

Bunu yapmak için terminalinizi açın ve Magento 2 köküne gidin. Oradan aşağıdaki komutu çalıştırmalısınız:

php bin/magento konuşlandırma: mod: geliştirici ayarla

Magento'da Uzantı Nasıl Oluşturulur:

Uzantı dosyalarını ve klasörlerini oluşturma:
Uzantı Kurulumu
İlk adım, bir Magento uzantısını kaydetmek için gerekli uzantı klasörünü ve gerekli dosyaları oluşturmaktır.
1. Aşağıdaki klasörleri oluşturun:

  • uygulama/kod/Weblizar
  • uygulama/kod/Weblizar/Helloworld

Weblizar klasörü uzantı ad alanıdır ve Helloworld uzantı adıdır .
Not: Uygulama dizininizde kod klasörünüz yoksa, manuel olarak oluşturun.

2. Artık bir uzantı klasörümüz olduğuna göre, app/code/Weblizar/Helloworld/etc klasöründe aşağıdaki kodla bir module.XML dosyası oluşturmamız gerekiyor:

<?xml version=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
<modül adı=”Weblizar_Helloworld” setup_version=”1.0.0″></module>
</config>

3. Modülü kaydetmek için app/code/Weblizar/Helloworld klasöründe aşağıdaki kodla bir record.php dosyası oluşturun:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Weblizar_Helloworld',
__DIR__
); ?>

4. Terminalinizi açın ve Magento 2 köküne gidin. Oradan aşağıdaki komutu çalıştırın:

php bin/magento kurulumu:yükseltme

Uzantının kurulu olduğundan emin olmak istiyorsanız, Yönetici => Mağazalar => Yapılandırma => Gelişmiş => Gelişmiş seçeneğine giderek uzantının listede olup olmadığını kontrol edebilir veya app/etc/config.php dosyasını açabilirsiniz. ve değeri 1 olarak ayarlanması gereken 'Weblizar_Helloworld' anahtarı için diziyi kontrol edin.

bir uzantı oluştururken magento yönetici paneli

Denetleyici oluşturma

1. Önce yönlendiriciyi tanımlamamız gerekiyor. Bunu yapmak için app/code/Weblizar/Helloworld/etc/frontend klasöründe aşağıdaki kodla bir route.XML dosyası oluşturun:

<?xml version=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:App/etc/routes.xsd”>
<yönlendirici kimliği=”standart”>
<route id=”helloworld” frontName=”helloworld”>
<modül adı=”Weblizar_Helloworld” />
</rota>
</yönlendirici>
</config>

Burada ön uç yönlendiricimizi ve rotamızı “helloworld” kimliği ile tanımlıyoruz.

FrontName özelliği, URL'mizin ilk kısmı olacak.

Magento 2'de URL'ler şu şekilde oluşturulur:
<frontName>/<controler_folder_name>/<controller_class_name>

Örneğimizde nihai URL şöyle görünecektir:

merhabadünya/dizin/dizin

2. Şimdi app/code/Weblizar/Helloworld/Controller/Index klasöründe Index.php controller dosyasını aşağıdaki kodla oluşturuyoruz:

<?php

ad alanı Weblizar\Helloworld\Controller\Index;

Magento\Framework\App\Action\Context'i kullanın;

sınıf Dizin, \Magento\Framework\App\Action\Action'ı genişletir
{
korumalı $_resultPageFactory;

genel işlev __construct(Bağlam $bağlam, \Magento\Çerçeve\Görünüm\Sonuç\PageFactory $sonuçPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
ebeveyn::__construct($bağlam);
}

genel işlev yürütme()
{
$resultPage = $this->_resultPageFactory->create();
$resultPage döndür;
}
}

Magento 2'de her eylemin, execute() yöntemini uygulayan kendi sınıfı vardır.

blok oluşturma

“Merhaba dünya” dizesini döndüren getHelloWorldTxt() yöntemiyle basit bir blok sınıfı oluşturacağız.

1. app/code/Weblizar/Helloworld/Block klasöründe aşağıdaki kodla bir Helloworld.php dosyası oluşturun:

<?php
ad alanı Weblizar\Helloworld\Block;

sınıf Helloworld, \Magento\Framework\View\Element\Template'i genişletir
{
genel işlev getHelloWorldTxt()
{
return 'Merhaba Weblizar, Bu ilk merhaba dünya magento Uzantınız!';
}
}

Bir düzen ve şablon dosyaları oluşturma

Magento 2'de düzen dosyaları ve şablonlar, uzantınızın içindeki görünüm klasörüne yerleştirilir. Görünüm klasörünün içinde üç alt klasörümüz olabilir: adminhtml, base ve frontend.
adminhtml klasörü admin için, ön uç klasörü ön uç için ve temel klasör hem admin hem de ön uç dosyaları için kullanılır.

1. Öncelikle app/code/Weblizar/Helloworld/view/frontend/layout klasöründe aşağıdaki kod ile bir helloworld_index_index.XML dosyası oluşturacağız:

<page xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”../../../../../../../lib /dahili/Magento/Çerçeve/
Görünüm/Düzen/etc/page_configuration.xsd” layout=”1column”>
<body>
<referenceContainer name="içerik">
<block class=”Weblizar\Helloworld\Block\Helloworld” name=”helloworld” template=”helloworld.phtml” />
</referenceContainer>
</body>
</sayfa>

Her sayfanın bir düzen eli vardır ve bizim denetleyici eylemimiz için düzen tutamacı merhabaworld_index_index'tir. Her düzen tutamacı için bir düzen yapılandırma dosyası oluşturabilirsiniz.

Mizanpaj dosyamızda içerik konteynerine bir blok ekledik ve bloğumuzun şablonunu bir sonraki adımda oluşturacağımız merhabaworld.phtml olarak belirledik.

2. app/code/Weblizar/Helloworld/view/frontend/templates klasöründe aşağıdaki kodla bir helloworld.phtml dosyası oluşturun:

<h1><?php echo $this->getHelloWorldTxt(); ?></h1>

$bu değişken bizim blok sınıfımıza atıfta bulunuyor ve 'Merhaba dünya!' dizesini döndüren getHelloWorldTxt() yöntemini çağırıyoruz.

Ve bu kadar. Tarayıcınızda /helloworld/index/index URL'sini açın ve bunun gibi bir şey almalısınız ve

magento çıktısında bir uzantı oluşturun

Merhaba dünya magento uzantısını indirmek için buraya tıklayın