Метафора для внутренних работ модуля Drupal

Используя дополнительную переменную состояния, такую как индексная переменная (который Вы обычно использовали бы на языках, таких как C или PHP), считается non-pythonic.

более оптимальный вариант состоит в том, чтобы использовать встроенную функцию enumerate() , доступный в обоих Python 2 и 3:

for idx, val in enumerate(ints):
    print(idx, val)

Выезд PEP 279 для больше.

13
задан AlexA 24 August 2009 в 10:02
поделиться

4 ответа

Расширение файла (если я вас правильно понимаю) - это просто соглашение, посредством которого какой-то механизм может распознать файл.

Например, .ASM используется некоторыми для представления исходного файла, написанного на каком-то ассемблере.

В Windows .EXE - это соглашение о программах, которые могут выполняться. .Dll - это расширение кода, который может выполняться другим исполняемым файлом.

Само по себе расширения файлов обычно не имеют внутреннего значения, но они помогают людям устанавливать стандарты именования и, таким образом, помогают другим понять, для чего они нужны.

Но разделение задач в Drupal (пока) довольно неформально и во многом зависит от дисциплины программирования разработчиков, поэтому они постоянно находятся на грани полного разрушения (есть много модулей, вкладывающих много логики в слой тем, так что более или менее в поле зрения).

Тем не менее, несоблюдение строгого разделения кажется одной из причин успеха Drupals, поскольку это позволяет широкому кругу людей с очень разным опытом вносить свой вклад без необходимости обучения разработчиков. Например, HTML / CSS Guy с небольшими знаниями PHP может добиться довольно большого количества настроек и дополнительных функций только в рамках своих шаблонов, без необходимости реализации полнофункциональных модулей. Если то, что он сделал, представляет общий интерес, он рано или поздно превратится в более формальную структуру / модуль, если его подберут другие люди. То же самое касается подражателей, любителей и начинающих разработчиков - они могут достичь своих целей, даже не понимая, что происходит, поэтому их идеи функциональности добавляются к вкладам и могут быть уточнены, если они отвечают общему интересу

. пока что это работало довольно хорошо - ядро ​​Drupal становилось более формальным (или менее скриптовым ;) с каждым основным выпуском, сохраняя при этом гибкость для дополнений - давайте посмотрим, сохранится ли это в будущем. ..

14
ответ дан 1 December 2019 в 22:23
поделиться

Модули в drupal лучше всего рассматривать как набор функций (реализация «ловушек» drupal), которые вызываются, когда в движке происходят определенные «события». Это не строго пользовательские события, но также, например, этапы загрузки (перед загрузкой узла, после загрузки узла и т. Д.) Или проверки (движок проверяет разрешения, вы хотите добавить некоторые?

На самом деле, хуки - это функции, расширяющие функциональность drupal, поэтому вы добавляете свои собственные варианты поведения к тем, которые предоставляет drupal. Затем Drupal вызовет эти хуки в подходящее время, чтобы вы могли выполнять свои действия.

Таким образом, нет тесной связи с формами или страницами, и нет никакого отношения к чему-либо, подобному модели MVC ... с версии 6, drupal не является объектно-ориентированным.

Это касается строго части drupal. Ваш модуль построен на этом, но он может использовать любую архитектуру, которую вы пожелаете. Он может быть объектно-ориентированным и может использовать MVC или любой другой шаблон.

3
ответ дан 1 December 2019 в 22:23
поделиться

Это вопрос высокого уровня, но я буду нанести удар.

Drupal - это фреймворк для управления контентом, здесь есть хороший обзор .

Drupal основан на некоторых объектно-ориентированных принципалах . У него есть разделение проблем, как у MVC. Существует уровень абстракции базы данных , логический уровень и система тематики .

При программировании модуля drupal часто рекомендуется использовать один или несколько из крючки в наличии. Это позволит вам тесно интегрировать ваш код в систему drupal. В ядро ​​ встроено множество функций, которые вы можете использовать в своих модулях.

2
ответ дан 1 December 2019 в 22:23
поделиться

Перехватчики Drupal называются слушателями или наблюдателями на большинстве объектно-ориентированных языков. Хотя технически они следуют этому шаблону, не ожидайте отточенности и зрелости, которые вы найдете в большинстве объектно-ориентированных языков и сред. Хуки Drupals могут быть чрезвычайно непоследовательными, ограниченными в использовании или слишком широкими в использовании.

Слушатели, ловушки - это основной архитектурный принцип всего в Drupal.

3
ответ дан 1 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: