Powiedzmy, że chcę opracować rozszerzenie Magento, które łączy się, powiedzmy, z pakietem wykresów Open Source lub galerią obrazów lub czymkolwiek innym, co NIE jest częścią samego rozszerzenia. Po pobraniu (oddzielnie od rozszerzenia) biblioteka innej firmy jest dostarczana jako pojedynczy plik .zip ze wszystkimi plikami .php, .js, .html i .css.
Czy umieszczam na biednym właścicielu strony, który chce zainstalować moje rozszerzenie razem z biblioteką innej firmy, ciężar rozdzielenia oryginalnego pliku .zip innej firmy i umieszczenia ich w plikach .js w / js, .php w / lib,. css w / skin itp?
Czy też istnieje ogólnie akceptowany „zrzut” dla zewnętrznych plików zip, w których można wygodnie rozpakować plik w stanie, w jakim się znajduje, i zrobić to?
Więc chcesz utworzyć rozszerzenie i do jego budowy używasz zewnętrznego zasobu / pakietu. Moim zdaniem, niezależnie od tego, jakiego pakietu użyłeś w swoim rozszerzeniu, twoje rozszerzenie powinno być zgodne z najlepszymi praktykami Magento. Oznacza to, że należy oddzielić wszystkie pliki js, css, obrazy od zewnętrznego zasobu i umieścić w
base\default
katalogach pakietów motywów.tzn. nie ma takiej unikalnej lokalizacji do umieszczania zasobów pakietu stron trzecich. Ostatecznie, gdy dostarczysz fajne rozszerzenie, wszystkie pliki js, css i obrazy związane z tym rozszerzeniem powinny być przechowywane w miejscu, w którym zwykle będzie szukał inny programista, a prawie w każdym przypadku jest to
base/default
pakiet motywów.W skrócie
Wszystkie twoje rozszerzenia js powinny się znaleźć
W ten sposób inny programista może bardzo łatwo znaleźć pliki js, css i obrazy (również zasobów zewnętrznych) rozszerzenia. Ponieważ używasz dodatkowego podkatalogu do wskazania zewnętrznych plików zasobów w katalogu nazwy rozszerzenia, da to innym najlepszą wskazówkę, że twoje rozszerzenie polega na niektórych pakietach stron trzecich.
Dlatego polecam oddzielić zewnętrzne pakiety i uczynić je częścią twojego rozszerzenia, aby inny programista mógł łatwo znaleźć twoje zależności. :-)
EDYCJA - 1
Nie należy obciążać rozszerzenia swoim właścicielem witryny. Możesz uniknąć tej trudności, odpowiednio wyrównując rozszerzenie. Oznacza to, że jeśli zapiszesz wszystkie powiązane pliki w określonych lokalizacjach katalogu, to wszystko, co powinien zrobić właściciel witryny, to pobierz rozszerzenie, a następnie Scal swoje rozszerzenie z katalogu głównego aplikacji. tj. wyrównaj prawidłowo swoje rozszerzenie. To powinno wyglądać tak.
EDYCJA - 2
Jeśli istnieją jakieś pakiety, które powinny być współużytkowane przez wszystkie aplikacje Magento (takie jak biblioteka javascript lub pakiet php itp.), Możesz umieścić je w
\lib
katalogu.Prawdą jest, że może istnieć duplikat pliku, jeśli dwa rozszerzenia korzystają z tych samych pakietów zasobów. Mogą także używać innej wersji tego samego pakietu zasobów. Ale w zasadzie twoje rozszerzenie powinno wykorzystywać tylko zasoby twojego rozszerzenia (i może polegać na domyślnych zasobach Magento) i nie powinno polegać na zasobach innych rozszerzeń, chyba że twoje rozszerzenie jest „rozszerzoną wersją” rozszerzenia strony trzeciej.
źródło
js, css, images
wbase\default
paczce”. Zobacz także mój kod edycjiMagento ma własny menedżer pakietów o nazwie Magento Connect. Powinieneś sprawdzić ten przewodnik z oficjalnej dokumentacji, aby w pełni zrozumieć, jak powinna wyglądać paczka. Po zrozumieniu struktury możesz spakować moduł z instalacji Magento.
źródło
Zasadniczo Magento używa jej własnej struktury do ładowni
.php
,.phtml
,js
,css
,images
pliki.Dla deweloperów rozszerzeń magento bardzo ważne jest, aby postępować zgodnie z magento. Sprawdź ten link .
Więc,
.php
pliki powinny przejść doapp/code/community
folderujs
pliki mogą iść dojs
folderu lub doskin/frontend or adminhtml/your_theme_pack/your_theme/js
folderucss
pliki mogą przejść doskin/frontend or adminhtml/your_theme_pack/your_theme/css
folderuimages
pliki mogą przejść doskin/frontend or adminhtml/your_theme_pack/your_theme/images
folderufiles should go to
folder „html app / design / frontend or adminhtml / template`Interfejs PS oznacza, że twoje rozszerzenie jest dla sklepu frontowego, a adminthml oznacza, czy twoje rozszerzenie jest dla obszaru administracyjnego.
Istnieją specjalne sposoby przechowywania tych plików w Magento, więc powinieneś ich przestrzegać.
Sprawdziłbym również, czy pożądane funkcje kopiowania są już dostępne w środowisku magento / zend. Na przykład tworzenie pdf, wysyłanie wiadomości e-mail, czytanie xml itp. Są już wbudowane w Magento.
Mam nadzieję że to pomoże.
Aktualizacja 1
Jeśli chcesz po prostu gdzieś przechowywać swoje pliki, możesz je przechowywać w dowolnym miejscu. Możesz nawet utworzyć nowy folder w katalogu głównym Magento. Ale nie jest to najlepsza praktyka dla Magento, które załaduje twój serwer podczas wykonywania tych plików. Chcesz to sprawdzić https://magentotherightway.com/
źródło
local
puli kodów.