Допустим, я хочу разработать расширение Magento, которое взаимодействует, скажем, с пакетом диаграмм с открытым исходным кодом или галереей изображений или чем-то, что НЕ является частью самого расширения. При загрузке (отдельно от расширения) сторонняя библиотека поставляется в отдельном .zip со всеми своими .php, .js, .html и .css вместе.
Поместить ли я на бедного владельца сайта, который хочет установить мое расширение вместе со сторонней библиотекой lib, бремя разрыва оригинального стороннего .zip и заставить их поместить .js в / js, .php в / lib,. css в / skin и т.д?
Или существует общепринятая «свалка» для любых сторонних .zips, где можно легко разархивировать загрузку как есть и покончить с этим?
Итак, вы хотите создать расширение и используете его для создания внешнего ресурса / пакета. На мой взгляд, какой бы пакет вы ни использовали в своем расширении, ваше расширение должно следовать лучшим практикам Magento. Это означает, что вы должны отделить все js, css, изображения от внешнего ресурса и поместить их в
base\default
каталоги пакетов тем.то есть не существует такого уникального местоположения для размещения сторонних ресурсов пакета. В конечном итоге, когда вы предоставляете классное расширение, все js, css и изображения, связанные с вашим расширением, должны храниться в месте, где обычно будет искать другой разработчик, и который в большинстве случаев является
base/default
пакетом тем.Короче говоря
Все ваши расширения JS должны быть под
Таким образом, другой разработчик может легко найти js, css и изображения (также ваших внешних ресурсов) вашего расширения. Поскольку вы используете дополнительный подкаталог для указания файлов внешних ресурсов внутри вашего каталога имен расширений, он даст другим лучший способ понять, что ваше расширение использует некоторые сторонние пакеты.
Поэтому я рекомендую вам отделить внешние пакеты и сделать их частью вашего расширения, чтобы другой разработчик мог легко найти ваши зависимости. :-)
РЕДАКТИРОВАТЬ - 1
Вы не должны делать бремя расширения для владельца вашего сайта. Вы можете избежать этой трудности, правильно выровняв расширение. Это означает, что если вы сохраняете все связанные файлы в указанных каталогах, то все, что должен сделать владелец сайта, - это захватить ваше расширение, а затем объединить его с корневым каталогом приложения. т.е. правильно выровняйте расширение. Это должно выглядеть так.
РЕДАКТИРОВАТЬ - 2
Если есть несколько пакетов, которые должны использоваться во всех приложениях Magento (например, библиотека javascript, пакет php и т. Д.), Вы можете поместить их в
\lib
каталог.Это правда, что может существовать дубликат файла, если два расширения полагаются на одни и те же пакеты ресурсов. Они также могут использовать разные версии одного и того же пакета ресурсов. Но в основном ваше расширение должно использовать только ресурс вашего расширения (и может полагаться на ресурсы по умолчанию Magento), и оно не должно полагаться на ресурсы другого расширения, если только ваше расширение не является «расширяющей версией» стороннего расширения.
источник
js, css, images
вbase\default
упаковке». Также смотрите мой код редактированияУ Magento есть собственный менеджер пакетов под названием Magento Connect. Вы должны проверить это руководство из официальной документации, чтобы полностью понять, как должен выглядеть пакет. Вы можете упаковать свой модуль из установки Magento, как только вы поймете структуру.
источник
В основном Magento использует собственную структуру для хранения
.php
,.phtml
,js
,css
,images
файлы.Для разработчика расширений magento очень важно следовать пути magento. Проверьте эту ссылку .
Так,
.php
файлы должны идти вapp/code/community
папкеjs
файлы могут идти вjs
папку или вskin/frontend or adminhtml/your_theme_pack/your_theme/js
папкуcss
файлы могут идти вskin/frontend or adminhtml/your_theme_pack/your_theme/css
папкуimages
файлы могут идти вskin/frontend or adminhtml/your_theme_pack/your_theme/images
папкуfiles should go to
папка 'html app / design / frontend или adminhtml / template`PS frontend означает, что ваше расширение предназначено для front store, а adminthml означает, что ваше расширение предназначено для области администратора.
Есть специальный способ хранения этих файлов в magento, поэтому вы должны следовать им.
Я также проверил бы, доступны ли ваши желаемые / копирующие функции в magento / zend framework. Например, создание pdf, отправка электронной почты, чтение xml и т. Д. Уже встроены в magento.
Надеюсь это поможет.
Обновление 1
Если вы хотите просто где-то хранить свои файлы, вы можете хранить их где угодно. Вы даже можете создать новую папку в корне magento. Но это не лучшая практика для magento, который будет загружать ваш сервер при выполнении этих файлов. Вы хотите проверить это https://magentotherightway.com/
источник
local
пул кодов.