Похоже, у них нет документации, кроме некоторых вызовов API на их официальных форумах. У меня есть опыт работы с Zend framework и CodeIgniter. Может ли кто-нибудь из мастеров OpenCart порекомендовать мне лучший способ его изучить и освоить в кратчайшие сроки? Скоро мне предстоит сделать с ним большой проект.
98
Ответы:
Краткое руководство разработчика OpenCart 1.5.X для начинающих
Это руководство написано для разработчиков, уже знакомых с PHP, ООП и архитектурой MVC.
Ниже вы увидите примеры для корзины со стороны каталога. Сторона администратора идентична по функциям, за исключением представлений, которые указаны в соответствующем разделе.
Понимание библиотек
Все функции библиотеки доступны через контроллер, модель и представления, используя
$this->library_name
. Все это можно найти в/system/library/
папке. Например, чтобы получить доступ к товарам в текущей корзине покупок, вам необходимо использоватьCart
класс, который находится в/system/library/cart.php
и к которому можно получить доступ с помощью$this->cart->getProducts()
Часто используемые предметы
customer.php
- Функции, связанные с клиентамиuser.php
- Функции администратора, связанные с пользователемcart.php
- Функции, связанные с тележкойconfig.php
- Все настройки загружаются из этогоurl.php
- Функции генерации URLПонимание параметра маршрута
Платформа OpenCart полагается на параметр
route=aaa/bbb/ccc
в строке запроса, чтобы знать, что загружать, и является базовой функцией для поиска файлов, которые необходимо редактировать для каждой страницы. Большинство маршрутов фактически используют только те,aaa/bbb
которые следует рассматривать как две части, однако некоторые из них содержат три частиaaa/bbb/ccc
. Первая частьaaa
обычно связана с папкой внутри общей папки, такой как папки контроллера или шаблонов. Вторая часть обычно относится к имени файла без соответствующего расширения.php
или.tpl
расширения. Третья часть объяснена в разделе «Общие сведения о контроллерах» ниже.Понимание языков
Языки хранятся в
/catalog/language/
папке воyour-language
вложенной папке . При этом общие текстовые значения, используемые на разных страницах, хранятся вyour-language.php
файле внутри папки, поэтому для английского языка на стороне каталога вы найдете значения вcatalog/language/english/english.php
. Для конкретного текста страницы вам понадобитсяroute
для страницы (это обычно так, но не всегда, поскольку вы можете указать любой языковой файл, который вам нравится). Например, на странице поиска есть маршрутproduct/search
, и поэтому текст для этой страницы на конкретном языке можно найти вcatalog/language/english/product/search.php
(Обратите внимание, что имя файла и подпапка соответствуют маршруту, за которым следует.php
.Чтобы загрузить язык в контроллер, вы используете
Затем вы можете использовать функцию языковой библиотеки
get
для получения определенных языковых текстов, таких какЯзыковые переменные назначаются в языковом файле с помощью специальной переменной,
$_
которая представляет собой массив ключей и текстовых значений. В вашем/catalog/language/english/product/search.php
вы должны найти что-то похожее наЗначения в глобальном языковом файле
english/english.php
автоматически загружаются и доступны для использования без$this->language->load
методаПонимание контроллеров
Контроллеры загружаются на основе
route
и довольно просты для понимания. Контроллеры находятся в/catalog/controller/
папке. Продолжая предыдущий пример,/product/search.php
в этой папке находится Контроллер для страницы поиска . Еще раз обратите внимание, что используется маршрут, за которым.php
следует.Открыв файл контроллера, вы увидите, что имя класса Pascal Case, расширяющее
Controller
класс, называетсяControllerProductSearch
. Это снова относится к маршруту,Controller
за которым следуют имя подпапки и имя файла без расширения с заглавной буквы. Использование заглавных букв на самом деле не требуется, но рекомендуется для удобства чтения. Стоит отметить, что имена классов не принимают никаких значений из подпапки и имени файла, кроме букв и цифр. Подчеркивания удалены.Внутри класса есть методы. Методы в объявленном классе
public
доступны для запуска через маршрут -private
нет. По умолчанию при стандартном маршруте из двух частей (см.aaa/bbb
Выше)index()
вызывается метод по умолчанию . Если используется третья часть маршрута (см.ccc
Выше), вместо этого будет запущен этот метод. Например,account/return/insert
загрузит/catalog/controller/account/return.php
файл и класс и попытается вызватьinsert
методПонимание моделей
Модели в OpenCart находятся в
/catalog/model/
папке и сгруппированы по функциям, а не по маршруту, поэтому вам нужно будет загрузить их в свой контроллер черезЭто загрузит файл в подпапку с
xxx
именемyyy.php
. Затем его можно использовать через объекти, как и в случае с контроллерами, вы можете вызывать только его
public
методы. Например, чтобы изменить размер изображения, вы должны использоватьtool/image
модель и вызвать ееresize
метод следующим образомПонимание присвоения переменных в представлениях из контроллера
Чтобы передавать значения в представление из контроллера, вам просто нужно присвоить данные
$this->data
переменной, которая по сути представляет собой массив пар ключ => значение. НапримерДоступ к этому в представлении должен быть легким для понимания, если вы знакомы с методом extract (), который преобразует каждый ключ в переменную. Таким образом,
example_var
ключ становится$example_var
и может быть доступен как таковой в представлении.Понимание тем
Темы доступны только на стороне каталога и в основном представляют собой папку шаблонов, таблиц стилей и изображений тем. Папки
/catalog/view/theme/
с темами помещаются в папку, за которой следует название темы. Имя папки не имеет значения, за исключениемdefault
папкиСторона администратора использует
/admin/view/template/
(пропустив/theme/theme-name/
путь, так как это не позволяет использовать разные темы)Файлы шаблонов находятся в
template
папке внутри папки темы. Если какой-либо шаблон недоступен для текущей выбранной темы, вместо этого используется шаблон папки по умолчанию. Это означает, что темы могут быть созданы с очень небольшим количеством файлов и при этом функционировать полностью. Это также уменьшает дублирование кода и проблемы при выполнении обновлений.Понимание представлений (шаблонов)
Как и в случае с языком и моделями, файлы представления обычно связаны с маршрутом, хотя и не обязательно. Шаблоны на стороне каталога обычно находятся в,
/catalog/view/theme/your-theme/template/
если он не существует, и в этом случае будут использоваться шаблоны темы по умолчанию. Для нашего примера страницы поиска выше это файлproduct/search.tpl
. Для маршрутов, состоящих из трех частей, это обычно,aaa/bbb_ccc.tpl
хотя жестко заданных правил нет. В админке большинство страниц следуют этому правилу, за исключением тех страниц, где перечислены элементы, такие как страница со списком продуктов, иcatalog/product_list.tpl
форма редактирования продукта находится внутриcatalog/product_form.tpl
. Опять же, они не установлены, но являются стандартом для тележки по умолчанию.Файл шаблона на самом деле является просто другим файлом php, но с расширением .tpl и фактически запускается в файле контроллера, поэтому все вещи, которые вы можете закодировать в контроллере, можно запустить в файле шаблона (хотя не рекомендуется нужно)
Понимание объекта базы данных
Запросы выполняются с использованием
DB_PREFIX
как следует из названия, это константа, содержащая префикс базы данных, если он существует$result
вернет объект дляSELECT
запросов, содержащий несколько свойств$result->row
содержит данные первой строки, если один или несколько возвращаются в виде ассоциативного массива$result->rows
содержит массив результатов строк, идеально подходящий для цикла с использованием foreach$result->num_rows
содержит количество возвращенных результатовЕсть также несколько дополнительных методов, которые есть у
$this->db
объекта.$this->db->escape()
использует mysql_real_escape_string () для переданного значения$this->db->countAffected
возвращает количество строк, затронутыхUPDATE
запросом и т. д.$this->db->getLastId()
возвращает последний идентификатор автоинкремента, используя mysql_insert_id ()Понимание зарезервированных переменных
Вместо стандартного OpenCart имеет переменные для использования предопределен
$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_FILES
,$_REQUEST
и$_SERVER
$_SESSION
редактируется с использованием$this->session->data
где данные представляют собой ассоциативный массив, имитирующий$_SESSION
Ко всем остальным можно получить доступ с помощью
$this->request
и они были «очищены», чтобы соответствовать включенным / отключенным магическим кавычкам, поэтому$_GET
становится$this->request->get
$_POST
становится$this->request->post
$_COOKIE
становится$this->request->cookie
$_FILES
становится$this->request->files
$_REQUEST
становится$this->request->request
$_SERVER
становится$this->request->server
Резюме
Хотя приведенное выше не является надежным руководством для разработчиков, мы надеемся, что оно послужит хорошей отправной точкой для тех, кто только начинает.
источник
Методы глобальной библиотеки: основные функции библиотеки opencart вместе с их функциями, большинство из них можно вызывать из любого места в каталоге или папках администратора (контроллеры, модели, представления)
источник
Существует веб-сайт OpenCart Wiki с документацией для начинающих разработчиков. Для получения более подробной информации следуйте приведенным ниже URL-адресам:
http://wiki.opencarthelp.com/doku.php?id=starthttp://wiki.opencarthelp.com/doku.php?id=methods_referenceИНТЕРНЕТ-АРХИВ ссылки
http://web.archive.org/web/20160305131349/http://wiki.opencarthelp.com/doku.php?id=start http://web.archive.org/web/20160305131349/http://wiki .opencarthelp.com / doku.php? id = method_reference
Например, ссылка на метод содержит подробную информацию о:
Тем не менее, некоторые страницы находятся в стадии разработки, но это будет полезно.
[Обновить]
По состоянию на январь 2018 года домен opencarhelp.com не работает.
источник
Хотя на эту тему уже много раз отвечали, я хотел бы предложить другой подход к освоению OpenCart, основанный на моем опыте.
Обучение в процессе работы
Создав свой собственный фреймворк OpenCart с нуля с помощью нескольких файлов, вы сможете понять, как все устроено. Я буду имитировать для вас файловую структуру OpenCart.
Создать файл
index.php
1. Реестр
Opencart использует шаблон реестра для перечисления всех экземпляров загруженных классов. Это сердце вашего приложения OpenCart. Затем объект реестра передается каждой категории, модели и библиотеке для быстрого доступа к другим объектам.
создать файл с путем
/system/engine/registry.php
в твоем
index.php
2. Вывод
Теперь давайте добавим вывод, который в будущем будет нашим HTML. В конце концов, вся идея состоит в том, чтобы отправить строку текста в браузер.
Создать файл
system/library/response.php
и в вашем
index.php
3. Контроллеры
Думайте о контроллерах как о страницах. Они будут определять, что будет отображаться клиенту: текст, html, json, загрузка или даже изображение. На данный момент нам просто нужна страница, которая отправляет текст.
Мы создадим контроллер для
home
страницы.добавить файл с путем
catalog/controller/common/home.php
и отредактируйте свой
index.php
4. Маршрутизатор
Мы не хотим, чтобы контроллеры были жестко запрограммированы, верно. Мы будем использовать параметр
route
из URL-адреса, чтобы указать нашей тележке, какой контроллер загружать.Создайте файл с путем
system/library/request.php
Создайте класс Router, который будет отвечать за инициализацию файла контроллера на основе маршрута (другими словами: динамически вызывать контроллер)
загрузите это в свой
index.php
Этот пост уже слишком длинный, но я надеюсь, что он даст общее представление о шаблоне MVC в OpenCart.
Также посетите мой Youtube https://www.youtube.com/dreamvention и мой блог https://dreamvention.com/blog. Я буду публиковать для вас больше советов и руководств, ребята!
источник
PHP - довольно большой язык с более чем 5000 встроенными функциями, поэтому одна из стратегий изучения новой платформы - определить, какие функции он использует наиболее часто, и потратить некоторое время на их изучение.
Я выполнил несколько запросов к исходному коду OpenCart, и вот 10 наиболее часто используемых функций:
Все 52 перечисленных здесь, а также команды Linux bash, которые вы можете использовать в любой базе кода для определения часто используемых функций: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/
источник
Этот плейлист с видео на YouTube также может быть полезен, чтобы стать гуру разработчиков OpenCart:
OpenCart Видео Уроки
Шаблон MVCL, поток кода и запрос и ответ в OpenCart Он показывает шаблон MVCL, поток кода и запрос и ответ в OpenCart. Они описывают поток как на картинке ниже:
Установка, настройка и удаление модуля OpenCart. В нем показаны три способа загрузки модулей, а затем установки, настройки и удаления модуля / расширения OpenCart 3.
Макеты и положение в OpenCart 3 В нем описаны макеты и позиции OpenCart 3. Он показывает, как показывать настраиваемые макеты для разных страниц, приводя примеры страниц категорий. Мы показываем другой макет для другой категории.
Обзор событий Opencart Вы узнаете, что такое события в OpenCart, как они работают и что делает их такими полезными.
Документация по Opencart API для разработчика В этом видео будет показано, как использовать и создавать собственный API Opencart.
Как только вы посмотрите эти видео, можете начинать кодировать :)
источник