Magento 2: Üçüncü Parti Modülleri Nereye Gidiyor?


22

Magento 2'nin ilk resmi sürümünü yeni kurdum. app/codeKlasörün gittiğini görünce şaşırdım.

app/code

Bu web sitesinden indirilen her iki versiyonu için oldu ve sürüm besteci aracılığıyla yüklü. Ayrıca, app/codeklasörü manuel olarak oluşturmaya çalıştığımda ve php bin/magento module:enable Pulsestorm_MyModuleörnek bir modülü etkinleştirmek için a yaptığımda aşağıdaki hatayı aldım

 Unknown module(s): 'Pulsestorm_MyModule'

Üçüncü parti modüllerinin nerede yaşaması gerekiyor? Eğer cevap "bir kaynak deposudur ve besteci aracılığıyla kurulur" ise, bir modül geliştiricisinin bir Magento 2 deposunda yaşamak için modüllerini nasıl yapılandırması gerekir?

Yanıtlar:


18

Tercihen 3PL satıcı dizininde, diğer her şeyle birlikte yaşayacaktır. Ancak… :) Hepimiz orada hemen hemen her özel site yapımı için yazılmış özel bir kod olduğunu biliyoruz ve bu IMO app / code / still 'a ait. Evet, hala bir modülü uygulama / koddan çalıştırabilirsiniz.

Konumdan bağımsız olarak tüm modüllerde, modülü sisteme sokmak için kullanılan composer.jsonbir registration.phpdosya ve bir dosya olmalıdır . Ayrıca etc/modules.xmldosyaya ihtiyacınız var . Teknik olarak, bir modül kaydetmek için gereken her şey:

$ tree app/code/Alger/
app/code/Alger/
└── Skeleton
    ├── composer.json
    ├── etc
       └── module.xml
    └── registration.php

2 directories, 3 files

Modülü çalıştırmak ve çalıştırmak için, çalıştırmanız setup:upgradeve ardından cache:flushsistemin yeni bileşeninizi hem tanıması hem de yüklemesi gerekir:

$ bin/magento module:enable Foo_Bar
$ bin/magento setup:upgrade -q && bin/magento cache:flush -q

Güncelleme: Genel GitHub deposundan modülü kurmak için iki yöntem: https://gist.github.com/davidalger/77761f13d9752b117f35


Modüle ihtiyacım olmadı: Daha önce devre dışı bırakmadığım sürece etkinleştirmek için. Eklentiyi devre dışı bırakmak için ayarlayabileceğiniz bir parametre var mı?
Eirik

@Eirik Eğer repodan besteci ile yüklüyorsanız, besteci tarafından yapılır. Bu dosyaları basitçe oraya yerleştirirseniz, onu etkinleştirmeniz gerekir. En azından en ne GA ben :) #phpworld burada bir konuşma için slaytları parlatma gibi hemen sonra bulundu eminim
davidalger

Yerel olarak çalıştığım için teşekkür ederim. Harika bilgi
Eirik

6

Alan, hala içeri giriyorlar app/code. registration.phpAşağıdakileri içeren bir modulename klasöründe olduğundan emin olun :

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

O zaman koş:

php bin/magento setup:upgrade

Yeni Magento 2 CE sürümünde test edilmiştir ve düzgün çalışır.


Eyvallah @Eirik, gerçekten buydu. Registration.php 'nin içinde kayması gereken bir şey olup olmadığı ya da son sürümü çıkaracak bir şey olmadığı açık değildi. Şimdi oldukça açık :)
Alan Storm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.