ApostropheCMS Moog Type - Расширьте свой собственный пользовательский модуль - PullRequest
0 голосов
/ 27 августа 2018

Расширьте свой собственный модуль

Этот вопрос, в основном, является хорошим вопросом для новичка, только начинающего изучать язык ООП.Я нашел ваш код здесь сказал, что расширение модуля с использованием afterConstruct является хорошей практикой.Можете ли вы научить нас, как продлить это из другого модуля и IMPLEMENT расширенный метод из другого модуля?Я следовал вашему примеру при создании моего собственного модуля контактной формы здесь:

  afterConstruct: function(self) {
    self.setSubmitSchema();
  },

  construct: function(self, options) {

    self.setSubmitSchema = function() {
      self.submitSchema = self.apos.schemas.subset(self.schema,
        [ 'name', 'email', 'title', 'body' ]
      );
    };

Ниже моя точка зрения на использование типа Moog, правильны ли они?

construct -> каждый методПРИКЛЮЧЕНО к конструкции. beforeConstruct -> Применяется только в том случае, если вы расширяете параметры, такие как addFields , removeFields и alterFields . afterConstruct -> Применимо для РАСШИРЯЮЩЕГО модуля / метода

1 Ответ

0 голосов
/ 28 августа 2018

Этот вопрос слишком общий, но вам нужен хороший пример того, как это делается правильно.

Для этого достаточно взглянуть на любой реализованный нами модуль частей, например, посмотреть apostrophe-redirects , который расширяет части, добавляя переопределение метода beforeSave, чтобы сделать что-то свое.

См. также проект apostrophe-samples , который содержит несколько примеров модулей частей спереопределение.Опять же, они расширяют apostrophe-pieces, поэтому они демонстрируют то, о чем вы спрашиваете.

Относительно трех функций:

beforeConstruct предназначен для настройки options в первую очередь перед тем, как выпростирается, чтобы увидеть это.Полезно, когда подкласс должен добавить поля, например, в addFields.

construct предназначен для присоединения методов к self.

, а afterConstruct - для инициализации, выполняемойвызывая некоторые из этих методов.Это подходящее время, потому что модули подкласса имели возможность переопределить некоторые из этих методов до запуска afterConstruct.

...