Magento özel modülü: Magento 2'de oluşturmak için adım adım
Yayınlanan: 2020-11-11Magento özel modülü, herhangi bir Magento geliştiricisi için çok önemli bir geliştirme sürecidir. Bildiğiniz gibi, zaman içinde bir geliştiricinin kendi işlevselliğini veya modülünü entegre etmesi gerekebilir. Bugünkü bu blog gönderisinde, Magento 2'de özel bir modül geliştirmek için size adım adım rehberlik edeceğiz.
En Son Güncelleme: Claue Çok Amaçlı Magento 2 Temasının 2.0 sürümünü, bir dizi performans iyileştirmesi ve özel özelliklerle birlikte piyasaya sürdük. Bu temaya şimdi göz atın: Claue Magento Theme 2. 0
Canlı Demo
Claue – Temiz, Minimal Magento 2&1 Teması , 40'tan fazla ana sayfa düzeni ve mağaza, blog, portföy, mağaza bulma düzenleri ve diğer faydalı sayfalar için tonlarca seçenek içeren modern ve temiz bir e-ticaret mağazası için mükemmel bir şablondur. Claue sürüm 2.0, aşağıdakiler de dahil olmak üzere bir dizi özel özellikle birlikte gelir:
- Luma temasına dayalı olmak.
- Magento Temasının tüm standartlarını karşılayın
- Önemli performans artışı
- Çoğu üçüncü taraf uzantıyla uyumludur.
- Magento 2.4.x ile tam uyumlu
Bu ikinci gelişmiş sürüm, öncekinden tamamen farklıdır. Bu nedenle, Claue sürüm 1 kullanıyorsanız ve Claue sürüm 2'ye güncelleme yapmak istiyorsanız, eski sürümden güncelleme yapmak yerine yalnızca yeni bir web sitesini yeniden oluşturabilirsiniz. Şimdi ana konuya dönelim.
Magento, birçok kullanışlı özellikle birlikte gelen ve hem ücretsiz hem de ücretli modülleri destekleyen çok yönlü bir platformdur. Müşterinin ihtiyaçlarını karşılamak için çevrimiçi olarak kurulabilen ve özelleştirilebilen modüller sağlar. Özelleştirme, bir modül üretilerek elde edilir ve ardından PHP dilinin gücü kullanılarak seçime göre değiştirilebilir. Örneğin, web sitemizin belirli bir özelliği veya piyasada yaygın olmayan bir dizi özellik veya gereksinimi varsa, bir modül bizim için bu boşluğu doldurabilir.
Magento, özel ve çekirdek modüllerin bulunduğu 3 tip kod havuzu (Kod, Çekirdek ve Yerel) ile birlikte gelir. Yerel havuz(klasör), tüm özel modüllerin bulunduğu veya yerleştirilmesi gereken yerdir. Aşağıda bir modülün içermesi gereken bileşenler verilmiştir.
- Bloklar – Burada, şablonlarımızda verileri göstermek için kullanılan özellikleri sağlamanız gerekir.
- Modeller – Tüm iş mantığı burada bulunur.
- Kaynak – Modeller, veritabanı etkileşimi için kullanılan işlevleri içerir.
- Denetleyiciler – Sayfa düzenini tanımlar ve dosyaları engeller ve bir URL istendiğinde yüklenir.
- vb – Magento'ya modüllerin kaç dosyaya sahip olduğunu ve modülün nasıl etkileşime girdiğini gösteren XML formatlarındaki yapılandırma dosyalarını içerir.
- Yardımcılar – Ortak iş mantığını tanımlamak için kullanılan işlevleri içerir (görüntü yeniden boyutlandırma, doğrulama gibi). Bu işlevler, Magento uygulamasında herhangi bir yerde kullanılabilir
- sql – SQL tabloları oluşturmak, değiştirmek veya silmek için SQL komut dosyalarını içerir.
Magento özel modülü nasıl oluşturulur?
Magento 2'de basit bir modül oluşturun
Magento 2'de basit bir modül oluşturmak kolaydır. Aşağıdaki görevleri başarmanız gerekecek:
- Modül için yeni bir dizin oluşturun
- Bir
registration.php
betiği oluşturun - Bir
etc/module.xml
bilgi dosyası oluşturun - Yeni modülü kurun
Modül için yeni bir dizin oluşturun
Yeni dizinin konumu için seçilebilecek iki seçenek vardır.
-
app/code/{vendor}/
-
vendor/{vendor}/
Modülünüz üzerinde çalıştığınız belirli bir çevrimiçi mağazaya yönelikse ilk seçeneği seçebilirsiniz. Ancak, çeşitli web sitelerinde kullanılmak üzere bir modül oluşturuyorsanız, ikinci seçeneği seçmek daha uygundur. Şimdi bu örnek için ilk seçeneği kullanacağım.
Öncelikle, içinde MyModule
adlı bir alt dizin bulunan EndPoint
(satıcı adımız) adlı bir dizin oluşturmanız gerekir:
cd {website_root} mkdir -p app/code/EndPoint/MyModule
register.php betiğini oluşturun
registration.php
dosya, Magento'ya yeni modülü belirli bir ad ve konum altında kaydetmesini söyler.
Aşağıdaki kodla app/code/EndPoint/MyModule/registration.php
adlı bir dosya oluşturun
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'EndPoint_MyModule' , __DIR__ );
etc/module.xml bilgi dosyasını oluşturun
Bu adımda modül sürüm numarasını belirteceğimiz modül bilgi dosyamızı oluşturmanız gerekmektedir. Öncelikle app/code/EndPoint/MyModule
içinde etc
dizini oluşturmalıyız:
mkdir app/code/EndPoint/MyModule/etc
ardından aşağıdaki komut satırı ile module.xml
oluşturun
<?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 = "EndPoint_MyModule" setup_version = "1.0.0" > </ module > </ config >
Yeni modülü kurun
Şimdi yeni modülü kurmamız ve etkinleştirmemiz gerekiyor, Bu yüzden web sitemizin kökünden komutu çalıştırmamız gerekiyor.
php bin/magento setup:upgrade
Magento, modül adlarının ve yapılandırma güncellemelerinin bir listesini çıkaracak ve yeni modül EndPoint_MyModule
bu listede listelenmelidir.
Modülümüze özel bir rota ekleyin
Artık çalışan, etkin bir modülümüz var, ancak henüz hiçbir şey yapmıyor! Modülümüzün etkin olup olmadığını kontrol etmenin basit bir yolu nedir? Özel bir rota oluşturalım, böylece https://{our_website}/mymodule/test/helloworld
gibi bir URL'ye ulaşırsak bir denetleyiciden özel bir yanıt döndürebiliriz.
Özel bir rota oluşturmak, kendi başına bazı adımlara ihtiyaç duyacaktır:
- Denetleyici için yeni bir dizin oluşturun
-
etc/routes.xml
dosyası oluşturun - Denetleyiciyi oluştur
- Yeni modülü yükseltin
Denetleyici için yeni bir dizin oluşturun
İlk olarak, özel rotamız için yeni PHP denetleyicisinin yaşayacağı yeni bir dizin oluşturmamız gerekiyor. Yeni dizin yolu şöyle olmalıdır:
app/code/EndPoint/MyModule/Controller
İstediğimiz yola göre istediğiniz kadar dizin düzeyi oluşturabilirsiniz. Örneğin, app/code/EndPoint/MyModule/Controller
içinde Index
adında bir sınıf oluşturursanız, bu denetleyiciye yönlendirilecek URL https://{our_website}/mymodule/index
("Denetleyici" dizini göz ardı edildi).
Satın Al app/code/EndPoint/MyModule/Controller/Test
içinde HelloWorld
adlı bir sınıf oluşturursanız, elde edilen URL https://{our_website}/mymodule/test/helloworld
.
etc/routes.xml dosyasını oluşturun
routes.xml
, Magento'ya modülümüz için hangi temel URL'nin kullanılacağını söyleyecektir. İlk olarak route.xml dosyasının yerleştirilmesi gereken “frontend” dizini oluşturmamız gerekiyor:
mkdir app/code/EndPoint/MyModule/etc/frontend
Temel URL'nin MyModule
olması gerektiğinde, yeni dizinde verilen URL'ye yapılan tüm istekleri modül denetleyicilerimize yönlendirecek bir XML dosyası oluşturmanız gerekir:
<?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 = "mymodule" id = "mymodule" > < module name = "EndPoint_MyModule" /> </ route > </ router > </ config >
Denetleyiciyi oluştur
https://{our_website}/mymodule/test/helloworld
isteklerine yanıt vermek istiyorsak, temel Controller
dizinini ve Test
alt dizinini oluşturmanız gerekir:
mkdir -p app/code/EndPoint/MyModule/Controller/Test
Bu dizin altında, özel Magento denetleyicimizi oluşturmanız gerekir. Tüm rota denetleyicileri \Magento\Framework\App\Action\Action
genişletmelidir. Ayrıca bağlamı atamıza iletmek için bir public construct()
yöntemine ve URL'ye çarpıldığında çağrılacak bir execute()
işlevine ihtiyacımız var:
<?php namespace EndPoint \ MyModule \ Controller \ Test ; class HelloWorld extends \ Magento \ Framework \ App \ Action \ Action { public function __construct ( \Magento\Framework\App\Action\Context $context ) { parent ::__construct( $context ); } public function execute () { echo "Hello world!" ; } }
Yeni modülü yükseltin
Bu adımda Magento kurulumumuzu yükseltmeniz gerekiyor. Ancak, yapıya bağımlılık enjektöründen parametreler alan yeni bir denetleyici eklediğiniz için. Ayrıca bağımlılık enjeksiyon motorunu (fabrikalar, proxy'ler ve önleyiciler gibi) derlemeniz gerekir. Son olarak, yeni içeriğin özel URL'mizden sunulması için önbelleği temizlemeniz gerekir:
php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento cache:flush
Ve bu kadar. Tarayıcınızda /helloworld/index/index URL'sini açın ve şöyle bir şey almalısınız: Bu, modülümüzün çalıştığı anlamına gelir!
Eğitimlerin sonuna geliyor: Magento özel modülü: Adım adım onu Magento 2'de oluşturmak için. Bunun sizin için yararlı bir blog olduğunu umuyoruz. Magento hakkında daha fazla bilgi edinmek istiyorsanız, daha fazla ayrıntı için Magento Platform makalemizi okuyabilirsiniz, ayrıca web sitenizi desteklemek için Magento 2 uzantılarımıza ve Magento 2 temalarımıza göz atmayı unutmayın.