Как найти класс Magento по его имени?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

27.07.2014 09:38

Имена классов Magento состоят, как правило, из слов с заглавной буквы, разделённых символом подчёркивания «_».
Примеры:
  • Mage_Adminhtml_Sales_Block_Order_Grid
  • Df_1C_Model_Cml2_Import_Processor_Product
  • Mage_Core_Helper_File_Storage
  • Varien_Data_Form_Element_Select

Каждому классу Magento соответствует ровно один файл с программным кодом этого класса.
Каждому файлу с программным кодом класса Magento соответствует ровно один класс Magento.

По имени класса Magento можно легко найти его путь в файловой системе:

  • Замените в имени класса символ подчёркивания «_» на символ файлового пути «/».
    Для указанных выше примеров классов получим файловые пути:
    • Mage/Adminhtml/Sales/Block/Order/Grid
    • Df/1C/Model/Cml2/Import/Processor/Product
    • Mage/Core/Helper/File/Storage
    • Varien/Data/Form/Element/Select

  • Добавьте в конце полученного файлового пути файловое расширение «.php»:
    Для указанных выше примеров классов получим файловые пути:
    • Mage/Adminhtml/Sales/Block/Order/Grid.php
    • Df/1C/Model/Cml2/Import/Processor/Product.php
    • Mage/Core/Helper/File/Storage.php
    • Varien/Data/Form/Element/Select.php

  • Полученные пути к файлам с программным кодом классов являются относительными.
    Чтобы определить полный файловый путь, надо узнать, из какой области программного кода система берёт конкретный класс.
    В Magento 4 области программного кода: «lib», «core», «community», «local».
    В англоязычной терминологии Magento область программного кода называется «code pool».
    • Один и тот же класс может быть расположен в любой из указанных 4-х областей программного кода, и даже в нескольких областях программного кода одновременно.
    • Если файл с программным кодом класса расположен сразу в нескольких областях программного кода, то система загружает программный код класса из той области, которая обладает большим приоритетом.
    • Области программного кода перечислены выше в порядке увеличения их приоритета для системы.
      Другими словами, если файл с программным кодом класса расположен одновременно в областях «core» и «local», то система будет использовать файл из области «local».

  • Добавьте название области программного кода перед относительным файловым путём класса в качестве родительской файловой папки:
    Например:
    • core/Mage/Adminhtml/Sales/Block/Order/Grid.php
    • local/Df/1C/Model/Cml2/Import/Processor/Product.php
    • core/Mage/Core/Helper/File/Storage.php
    • lib/Varien/Data/Form/Element/Select.php

  • Если файл с программным кодом класса Magento расположен не в области программного кода «lib», а в любой из 3-х остальных программных областей, то добавьте в начале полученного пути «app/code/»:
    Например:
    • app/code/core/Mage/Adminhtml/Sales/Block/Order/Grid.php
    • app/code/local/Df/1C/Model/Cml2/Import/Processor/Product.php
    • app/code/core/Mage/Core/Helper/File/Storage.php
    • lib/Varien/Data/Form/Element/Select.php

    Полученные пути являются полными путями к файлам с программным кодом классов относительно корневой папки Magento.


Поделиться темой: