Module manager

With Conditional Content you can restrict or grant access to parts of the content based on a wide selection of conditions (based on device, user groups, date ranges, languages and menu items to name a few). Creating conditions is a easy as placing {show} or {hide} around your special content. For example, to show a piece of text only to guests (not logged in visitors), you can do this: {show…


Articles Anywhere Articles Anywhere

Free

Articles Anywhere

By Regular Labs
News Display

Articles Anywhere — place articles anywhere you can enter text. Articles Anywhere is a powerful plugin that allows you to insert articles anywhere on your site, including within modules, 3rd party components, and even inside other articles. Not only you can place complete articles, but also only place specific data (like Title, Readmore Link, Text, Images, Custom Fields, etc). You have full cont…


Dummy Content Dummy Content

Free

Dummy Content

By Regular Labs
Mass Content


Dummy Content is an editor button and system plugin (Joomla extension) that helps you place random dummy text into your article. Or in any other content item that has an editor, like Custom HTML Modules, category descriptions, 3rd party content, … So you’re creating a new website and want to fill your articles with some dummy text. So you go to one of the many Lorem Ipsum websites to copy text…


Articles Field Articles Field

Free

Articles Field

By Regular Labs
Custom Fields

With the Regular Labs Articles Field you can create links between articles. Articles Field is a Joomla! custom field plugin that greatly extends the capabilities of custom fields. With the native Joomla! lists fields, the values are only treated as plain text and cannot be linked to any other content. The Regular Labs “Articles Field” (articles) is a Joomla custom field that gives you the a…

What? Nothing! What? Nothing!

Free

What? Nothing!

By Regular Labs
Miscellaneous

What? Nothing! does nothing… just nothing! Are you just like me and sometimes just want to do nothing, nothing at all? Well, that brought me to this revolutionary plugin for Joomla! All these plugins that are available do all sorts of stuff. All busy doing their thing. Adding functionality here. Manipulating html output there. Making your website better and better. Well, that’s all good and n…


IP Login IP Login


Free

IP Login

By Regular Labs
Site Access

With IP Login you can log into you Joomla frontend and/administrator side automatically by IP address. You can simply set up your IP address and a secret URL key in your user profile in the administrator. How to use it: https://www.regularlabs.com/iplogin…


Simple User Notes Simple User Notes

Free

Simple User Notes

By Regular Labs
User Management

Simple User Notes replaces the overly complex built-in Joomla! User Notes system with clean & simple textarea field. Simply click on the «Notes» tab provided in the User Manager (user edit view) and add your desired notes. More information: https://www.regularlabs.com/simpleusernotes…


Better Trash Better Trash

Free

Better Trash

By Regular Labs
Admin Navigation


Better Trash — better trash management in Joomla! Better Trash improves the functionality of the default Trash button. Using Better Trash you will need less clicks to view and permanently delete trashed items. In Joomla, when you want to view the trashed items, you need to open the Search Tools and set the Status selection to Trashed. Then to delete all the trashed items, you need to select all…

Quick Index Quick Index

Free

Quick Index

By Regular Labs
Article Elements

Quick Index — add a table of contents quickly in Joomla! With Quick Index you can easily add an index (Table of Contents) to your content. The index will be generated based on the headings in your content. Simply place {index} where you want the index to show. You can see Quick Index in action on this website on all the Tutorial, FAQs and Videos pages (at the top of the content). Quick Index o…

extensions.joomla.org

Уважаемые участники!   
Ввиду оптимизации форума и открытия более обширной темы, прошу размещать ваши сообщения в [ теме — русскоязычный каталог модов ] !

Спасибо, 
с уважением К101

— — конец сообщения — —

Предлагаю в этой теме обсуждать моды, которыми Вы пользуетесь или ищите, а так же задавать вопросы по ним.

Если Вы не найдете нужный Вам мод, можете обратиться к главной ветке на английском (доступ через переводчик).
Как и в английской ветке, моды организованы на категории и совместимы с текущей версией KSP.
Мы планируем организовать перевод и синхронизацию названий всех модов с английской веткой, чтобы сделать обновление списка скоростным в будущем.

 

Моды и производительность
Пользователи упомянали занижение производительности игры по следующим причинам:

  • количество частей/деталей (старайтесь не превышать 100-200),
  • количество несостыкованных док-портов (закрывающиеся не влияют),
  • освещение/прожектора (каждый источник света снижает производительность),
  • аэроэффекты (это не относится напрямую к модам, но к модам улучшающих им — относится),
  • моды выполняющие любые просчеты (особенно неоптимизированные):
      один из модов просто добавляющих новые миссии в карьеру постоянно проверял условия и приводил к проседаниям кадров для всех судов

В кратце: меньше модов — обычно лучше, новые детали из модов — обычно хуже, но меньше деталей на корабле — всегда лучше.

 

Список модов
Предлагаем ознакомится с наиболее популярными модами. Более детально Вы можете ознакомится по ссылке выше:

[x] Science!
Advanced Landing Capsule for Orbital Rendezvous (ALCOR)
Alternate Resource Panel
Astrogator
Astronomer’s Visual Enhancements: Edge of Oblivion
Atmosphere Autopilot
Aviation Lights
B9 Procedural Wings
Better Burn Time
CapCom
CKAN (служебный, репозиторий модов)
Chatterer
Community Resource Pack (служебный)
Community Tech Tree
Connected Living Space
Contract Configurator
Custom Barn Kit
Dang It! Continued
DeltaDizzy’s Flag Pack
Distant Object Enhancement (Bis)
Docking Camera (KURS)
Docking Port Alignment Indicator (DPAI)
DMagic Orbital Science (добавляет новые научные эксперименты)
Dr. Jet’s Chop Shop
Easy Vessel Switch (при смене объектов, позиция камеры не меняется)
Environmental Visual Enhancements (EVE)
Engine Lighting
Ferram Aerospace Research (FAR)
Flight Manager For Reusable Stages (FMRS) (позволяет возвращаться во времени при сбросе ступеней для посадки и похожего)
Ground Construction
Hangar Extender Infernal Robotics
Hullcam VDS
Interstellar Fuel Switch (IFS) (позволяет бакам иметь любое топливо, может сказаться на баллансе)
K2 Command Pod (командный отсек на два кербала, по образу капсулы Gemini)
Kerbal Alarm Clock (KAC)
Kerbal Attachment System (KAS) (часто используется с KIS)
Kerbal Aircraft Expansion (KAX) (несколько пропеллерных двигателей)
Kerbal Engineer Redux (KER)
Kerbal Inventory System (KIS) (часто используется с KAS)
Kerbal Joint Reinforcement (KJR)
Kerbal Konstruct
Kerbal Planetary Base System
KerboKatz Small Utilities
— DailyFunds (настраиваемое количество денег каждый день, от репутации)
— DestroyAll
— FPSLimiter
— FPSViewer
— Kerbal ScienceExchange
— Modified Explosion Potential
— PhysicalTimeRatioViewer
— RecoverAll
Kerbalism
Kopernicus (служебный мод)
Kosmodrome ***
KRASH
KSC++ Continued
KSP Physics Calmer
KSPRC
LightFixer
Magico13 modlets (коллекция небольших модов)
— MagiCore (нужен для остальных в группе)
— NIMBY
— Wwwwwwwww / Wnine
— Tree Toppler
— Editor Time
— Ship Save Splicer
— Dated Quicksaves
— Sensible Screenshot
MechJeb 2 (очень продвинутый автопилот)
Memgraph (снижает потребление памяти, тюнинг «сборщика мусора»)
MiniAVC / KSP-AVC (служебный, обновление и совместимость модов)
Module Manager (служебный, очень важный)
Monthly Budget
NavBallAdjustor
Near Future Technologies (крупная коллекция модов предоставляющая различные детали)
Outer Planets Mod (добавляет много новых планет)
OSE Workshop Continued (требует KIS и USI, позволяет «печатать» детали инженерами)
Part Angle Display (PAD)
PersistentRotation
PlanetShine
Porkjet’s Stock Engine Overhaul (эти части/двигатели почти попали в оригинальную игру)
Pork-a-like Rapier
Precise Maneuver
Precise Node
Procedural Fairings
Procedural Parts
RasterPropMonitor (активные элементы управления в кабинах)
RCS Build Aid
Real Fuels
Real Plume
Real Solar System
RealChute Parachute Systems
Realism Overhaul
Realistic Atmospheres
RemoteTech 2
Retractable Lifting Surface
SCANsat (возможность генерации карт и  навигации из космоса)
Scatterer (улучшает детализацию ландшафтов, в ущерб fps)
Smart Actuators
SmokeScreen
Stage Recovery
Stock Part Revamp (огромное качественное обновление стоковых частей, гораздо шире чем Porkjet Overhaul)
Stock Visual Enhancement (улучшает все текстуры планет из космоса; позволяет сделать объекты на планетах [деревья, камни] непроходимыми)
Surface Experiment Pack
SVE
SVT
SXTContinued
TAC Life Support
TextureReplacer
Tokamak Industries Refurbished Parts
TweakScale
Umbra Space Industries (крупная коллекция модов):
USI Kolonization Systems MKS/OKS (уже включает в себя Konstruction!)
USI Life Support
USI Exploration Pack
— (USI) Konstruction!
— (USI) Freight Transportation Technologies
— (USI) Malemute Rover
— (USI) Karbonite/Karbonite Plus
— (USI) Asteroid Recycling Technologies
— (USI) Sounding Rockets
— (USI) Project Orion — Nuclear Pulse Engines
— (USI) Alcubierre Warp Drive
VERY SMALL FIX — Lag when looking at the ocean PATCH (уменьшает детализацию шельфа океанов из космоса, поднимая fps)
Waypoint Manager
WindowShine
WorldStabilizer (стабилизирует приземленные аппараты, чтобы избежать их перевертывания)

 

Edited by Kerbal101

forum.kerbalspaceprogram.com

Module Manager enables you to browse the modules directory on modules.processwire.com, download, install or update them.

Requires

  • the JqueryDataTables module to be installed before you can install Modules Manager.
  • «allow_url_fopen» to be enabled in your php.ini.
  • «openssl» PHP extension needs to be installed on your server.
  • PHP to have read/write access to the /site/modules/ directory

How does it work

When installed you’ll have a new admin page under «Setup», feel free to move it to wherever you like. On first load it will download and cache a json file from where it will look for modules already installed, new versions, or modules not yet installed or not downloaded and provide actions according to its state.

There’s a refresh button to look for new modules already put in modules directory and refresh the cache file with the remote list of modules.

If you download a module it will create a temp zip file in the assets folder, extracts it, creates a new folder in /site/modules/ using the class name, and move the files in there. After it’s done it deletes the temp files. It will show a message and show an install button, which you can use to install it, but don’t have to.

If you update a module it will do the same process as above, and just replace the current files with the new ones.

Notes

This version is still beta and in testing. Feel free to try it out own your own risk. Current version uses file_get_contents» and «copy» php methods to retrieve the json feed from external domain. This requires the php to allow it in php (allow_url_fopen). Download of the module zip is done using copy(). Also on my local install I had to adjust the /site/modules/ and /site/assets/ directory to have write permission by php.

Changes Log

2.1.6

  • fix for «n» line breaks in summary causing an error in jQueryDataTables parsing the json.

2.1.5

  • added external links if available below description to project (github), direct download and forum support thread.

2.1.4

  • added «Premium Modules» to exclude list, they still show but are not downloadable (cause they’re commercial)

2.1.3

  • module folders get now deleted before writing new version
  • small fix with module cache not getting updated when updateing a module version

2.1.2

  • urlencode for module download/update urls
  • small css fix for processing bar

2.1.1

  • some more translations added
  • made Magnific popup wider

2.1.0

Added a new module to ModulesManager:

Modules Manager Notification 0.1.0
  • Sends out update information for installed modules to an email
  • This module required LazyCron core module installed
  • Note this is something you want to run like once a week
  • When the lazy cron is running the request will be blocked for a few second, this is currently due to how the lazy cron works. Maybe we will be able to optimize this in future.

After install you need to define the interval, an recipient email, subject and optional a «from» email address. There’s also a checkbox to activate/deactivate the module running the lazy cron job.

Note that this requires someone to hit your website (or admin) to get executed, so interval times can vary.

It will then refresh the module feed from modules.processwire.com on your installation and check for new modules. If any found it will send out an email notification to the email specified in the form of:

Found following updates for installed modules:  Module: TextformatterHannaCode v0.1.4 Found new version available: v0.1.5 More infos at: http://modules.processwire.com/modules/process-hanna-code/ ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––  Module: InputfieldCKEditor v1.1.3 Found new version available: v1.1.4 More infos at: http://modules.processwire.com/modules/inputfield-ckeditor/ ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

It will also save a notification log modulesmanager_notification_log.txt with an entry when the lazy cron was executed in your site/assets/logs/ folder.

2.0.0

  • added jQuery DataTables to list modules. This enables convenient browsing with pagination, live search filter and sorting. State saving via cookies is enabled so if you come back it shows the table how you left it.
  • added iframe modals for download, update, edit and install links. So you can now install modules without leaving the ModulesManager page. This is using Magnific lightbox by default, if installed, otherwise it will take the older Fancybox.
  • some more translations added

1.1.1

  • added live search filtering, fuzzy text search only on name, author, categories and action

1.0.9

  • fixes dependency issue with extending module that isn’t installed yet
  • installing module now only possible if requirements are met by the module info
  • some changes to the module table columns and showing summary directly

1.0.7

  • multitude of fixed and code cleanup (@petsagouris)
  • added check for openssl module required for https download stream (@petsagouris)
  • added back to Modules Manager button on download/update screen

1.0.6

  • replace «page-edit» permission for module with «modules-manager»
  • added version output on modules screen footer

1.0.5

  • added max_redirects config option used by download stream context. Increase this value if download of zip failes. default 3.
  • some maintenance

1.0.4

  • added back support for PW 2.2
  • some maintenance

1.0.3

  • Language Packs and Site Profiles now show up but will have a «more» link to the repository page.
  • Added check if no download github url found to give a «more» link to the modules url
  • requires ProcessWire v2.3

1.0.2

  • add support for admin themes install

modules.processwire.com

Как управлять модулями Joomla из панели управления

Модули Joomla

Модули — это легкие и гибкие расширения сайта, использующиеся на страницах. Обычно модули расположены вокруг компонента и занимают небольшие прямоугольные области. Хорошо известный пример — это модуль авторизации. Модули назначаются пунктам меню, так что есть возможность показать или скрыть форму авторизации на определенных страницах сайта.

Расположение менеджера модулей в панели управления

Расположение менеджера модулейДля того чтобы перейти на страницу управления модулями воспользуйтесь одним из слудующих способов:

  • в верхнем выпадающем меню перейдите по ссылкам «Расширения» (Extensions) > «Менеджер модулей» (Module Manager)
  • на главной странице панели управления кликните по иконке с подписью «Менеджер модулей»

Для чего необходим менеджер модулей?

С помощью него можно добавлять и изменять параметры модулей в Joomla. 

Основные особенности использования модулей в Joomla!:

  • Всем сайтам на Joomla требуется хотя бы один модуль меню
  • Все другие типы модулей — дополнительные (например, новости, баннеры, последние новости, опросы)
  • Каждое меню сопровождается своим модулем меню (например, mod_menu)
  • Некоторые модули связаны с компонентами. Например, каждый модуль меню связан с одним компонентом меню. То есть при создании меню и пунктов меню, следующим шагом вам необходимо настроить модуль, с помощью которого оно отобразится на экране.

Колонки в таблице менеджера

Таблица менеджераЕсли вы кликните на какой-либо из заголовков таблицы то она отсортируется по колонке, содержащей этот заголовок.

Рассмотрим из каких колонок состоит таблица:

Флажки (Checkbox) — Вы можете выбрать галочкой один или несколько элементов. Чтобы выделить все элементы, установите флажок в заголовке колонки. После выбора элементов, кликните на нужную вам кнопку в панели инструментов вверху страницы. Многие действия, такие как «Публиковать» или «Снять с публикации» применимы к нескольким модулям. Другие, такие как «Изменить» работают одновременно только с одним из модулей. Если выбрать несколько модулей и попытаться изменить, то вы попадете на страницу редактирования первого выбранного модуля.

Название модуля (Module Name). Оно подсвечивается как ссылка, на которую можно кликнуть, чтобы отредактировать модуль.

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

Позиция (Position) — названия позиций, в которых располагаются модули.

Порядок (Order) — порядок показа модулей внутри позиций. Чтобы изменить порядок можно ввести порядковый номер в редактирование поля или нажать на стрелочку рядом с номером.

Доступ (Access Level)

Показывает группы пользователей, которые имеют доступ к модулям. А именно:

  • Все (Public) — каждому человеку на сайте будет показан модуль;
  • Зарегистрированные (Registered) — только зарегистрированные пользователи видят модуль.
  • Избранные (Special) — только авторы или пользователи верхних уровней имеют доступ к модулю.

Страницы (Pages) — пункты меню, на которые ссылается модуль. Показываются 3 варианта:

  • Все (All) — на всех страницах
  • Нет (None) — не для элементов меню
  • Только выбранные (Varies) — для отдельных пунктов меню

Тип (Type) — системное имя модулей. Многие расширения Joomla добавляют дополнительные модули сами.

ID — идентификационный номер модуля. Это уникальный номер, который назначается с помощью Joomla автоматически. Он используется для внутренней идентификации элемента, например во внутренних ссылках. Вы не можете изменить этот номер.

Панель инструментов

Панель управления менеджера модулей

Создать (New) — создание нового экземпляра модуля. При нажатии всплывет страница, которая содержит список всех доступных модулей.

Изменить (Edit) — выберите один модуль и кликните на кнопку. Появится страница редактирования модуля.

Дублировать (Copy) — копирование одного или более модулей. Перед нажатием на кнопку выберите в списке элементов с помощью флажков.

Опубликовать — используется для опубликования одного или более элементов.

Снять с публикации — снимает с публикации один или более элементов

В корзину (Delete) — выбранные элементы после нажатия на кнопку будут перемещены в корзину

Справка (Help) — открывает страницу помощи

joomla-book.ru

Установка

Advanced Manager Module устанавливается стандартно через Менеджер расширений. После установки он сразу готов работе, дополнительно ничего активировать не нужно.

Скачать

Все примеры будут рассмотрены для бесплатной версии расширения. В pro версии уже встроена поддержка сторонних компонентов, в том числе и virtuemart, но это ограничение можно обойти, используя регулярные выражения, о которых речь пойдет ниже.

Логика работы

В Advanced Manager Module кроме пунктов меню доступно еще 12 дополнительных условий, которые могут влиять на привязку модулей. Выбрать условия можно в настройках модуля во вкладке Отображение по условиям.

Module manager

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

Более подробно основные условия рассмотрим на конкретных примерах далее.

Убрать условия, которые не будут использоваться в процессе работы, можно в настройках Advanced Module Manager в Система > Общие настройки > Regular Labs — Advanced Module Manager > Отображать привязки.

Для каждого модуля во вкладке Модуль можно выбрать цвет, который поможет проще ориентироваться в общем списке модулей если их много.

Module manager

Изменить палитру цветов или отключить их можно также в настройках компонента.

virtuemart.su

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

admin_pane_1

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

Таблица «Менеджер модулей» состоит из нескольких колонок:

  • Название модуля
  • Включен — если стоит значок gal, значит модуль опубликован. Если стоит значок net, то нет.
  • Порядок — Порядок расположения модулей (можно изменить стрелочками strelkiили проставив нужный порядковый номер в соответствующем поле. Чтобы зафиксировать изменения, необходимо нажать disket вверху столбца).
  • Доступ — отображает заданный доступ пользователей к данному модулю.
  • Позиция — отображает заданную позицию расположения модуля на сайте/ в административной панели.
  • Страницы — отображает выбор страниц, на которых выведен модуль.
  • Тип — показывает тип модуля

 

На странице «менеджер материалов», используя кнопки на панели инструментов, можно:

Включить edit. Показать (опубликовать) существующий модуль. Отметьте нужный модуль галочкой и нажмите на эту иконку.

Отключить snyat. Скрыть (снять с публикации) существующий модуль. Отметьте нужный модуль галочкой и нажмите на эту иконку.

Копировать kopy. Копировать существующий модуль в другой раздел/категорию. Отметьте нужный модуль галочкой и нажмите «Копировать» — теперь модуль скопирован, у нового модуля будут такие же позиция и тип, в его названии будет добавлено «Копия …».

Удалить korzin. Поместить выбранный модуль в корзину. Отметьте ненужный модуль галочкой и нажмите на эту иконку, чтобы удалить его.

Изменить izm. Изменить существующий модуль. Для этого необходимо отметить нужный модуль галочкой и нажать на эту иконку для перехода в менеджер данного модуля.

Создать sozd. Создать новый модуль.

Помощь help. Вызвать в новом окне страницу описания по окну «Менеджер модулей ».

 

Обратите внимание на то, что несмотря на наличие в менеджере модулей на сайте модуль может не отображаться, если его позиция не определена в шаблоне сайта.

joomla.ru

Module Manager Events

The Module Manager events are defined in ZendModuleManagerModuleEvent.

loadModules (ModuleEvent::EVENT_LOAD_MODULES)

This event is primarily used internally to help encapsulate the work of loading modules in event listeners, and allows the loadModules.post event to be more user-friendly. Internal listeners will attach to this event with a negative priority instead of loadModules.post so that users can safely assume things like config merging have been done once loadModules.post is triggered, without having to worry about priorities.

loadModule.resolve (ModuleEvent::EVENT_LOAD_MODULE_RESOLVE)

Triggered for each module that is to be loaded. The listener(s) to this event are responsible for taking a module name and resolving it to an instance of some class. The default module resolver looks for the class {modulename}Module, instantiating and returning it if it exists.

The name of the module may be retrieved by listeners using the getModuleName() method of the Event object; a listener should then take that name and resolve it to an object instance representing the given module. Multiple listeners can be attached to this event, and the module manager will trigger them in order of their priority until one returns an object. This allows you to attach additional listeners which have alternative methods of resolving modules from a given module name.

loadModule (ModuleEvent::EVENT_LOAD_MODULE)

Once a module resolver listener has resolved the module name to an object, the module manager then triggers this event, passing the newly created object to all listeners.

mergeConfig (ModuleEvent::EVENT_MERGE_CONFIG)

After all modules have been loaded, the mergeConfig event is triggered. By default, ZendModuleManagerListenerConfigLister listens on this event at priority 1000, and merges all configuration. You may attach additional listeners to this event in order to manipulate the merged configuration. See the tutorial on manipulating merged configuration for more information.

loadModules.post (ModuleEvent::EVENT_LOAD_MODULES_POST)

This event is triggered by the module manager to allow any listeners to perform work after every module has finished loading. For example, the default configuration listener, ZendModuleManagerListenerConfigListener (covered later), attaches to this event to merge additional user-supplied configuration which is meant to override the default supplied configurations of installed modules.

Module Manager Listeners

By default, Zend Framework provides several useful module manager listeners. All shipped listeners are in the ZendModuleManagerListener namespace.

DefaultListenerAggregate

To address the most common use case of the module manager, ZF2 provides this default aggregate listener. In most cases, this will be the only listener you will need to attach to use the module manager, as it will take care of properly attaching the requisite listeners (those listed below) for the module system to function properly.

AutoloaderListener

This listener checks each module to see if it has implemented ZendModuleManagerFeatureAutoloaderProviderInterface or defined the getAutoloaderConfig() method. If so, it calls the getAutoloaderConfig() method on the module class and passes the returned array to ZendLoaderAutoloaderFactory.

ModuleDependencyCheckerListener

This listener checks each module to verify if all the modules it depends on were loaded. When a module class implements ZendModuleManagerFeatureDependencyIndicatorInterface or has defined the getModuleDependencies() method, the listener will call getModuleDependencies(). Each of the values returned by the method is checked against the loaded modules list: if one of the values is not in that list, a ZendModuleManagerExceptionMissingDependencyModuleException is thrown.

ConfigListener

If a module class has a getConfig() method, or implements ZendModuleManagerFeatureConfigProviderInterface, this listener will call it and merge the returned array (or Traversable object) into the main application configuration.

InitTrigger

If a module class either implements ZendModuleManagerFeatureInitProviderInterface, or defines an init() method, this listener will call init() and pass the current instance of ZendModuleManagerModuleManager as the sole parameter.

Like the OnBootstrapListener, the init() method is called for every module implementing this feature, on every page request and should only be used for performing lightweight tasks such as registering event listeners.

LocatorRegistrationListener

If a module class implements ZendModuleManagerFeatureLocatorRegisteredInterface, this listener will inject the module class instance into the ServiceManager using the module class name as the service name. This allows you to later retrieve the module class from the ServiceManager.

ModuleResolverListener

This is the default module resolver. It attaches to the loadModule.resolve event and returns an instance of {moduleName}Module.

Since 2.8.0, if the module name provided resolves to a fully qualified class name, it returns that verbatim.

OnBootstrapListener

If a module class implements ZendModuleManagerFeatureBootstrapListenerInterface, or defines an onBootstrap() method, this listener will register the onBootstrap() method with the ZendMvcApplication bootstrap event. This method will then be triggered during the bootstrap event (and passed an MvcEvent instance).

Like the InitTrigger, the onBootstrap() method is called for every module implementing this feature, on every page request, and should only be used for performing lightweight tasks such as registering event listeners.

ServiceListener

If a module class implements ZendModuleManagerFeatureServiceProviderInterface, or defines an getServiceConfig() method, this listener will call that method and aggregate the return values for use in configuring the ServiceManager.

The getServiceConfig() method may return either an array of configuration compatible with ZendServiceManagerConfig, an instance of that class, or the string name of a class that extends it. Values are merged and aggregated on completion, and then merged with any configuration from the ConfigListener falling under the service_manager key. For more information, see the ServiceManager documentation.

Unlike the other listeners, this listener is not managed by the DefaultListenerAggregate; instead, it is created and instantiated within the ZendMvcServiceModuleManagerFactory, where it is injected with the current ServiceManager instance before being registered with the ModuleManager events.

Additionally, this listener manages a variety of plugin managers, including view helpers, controllers, and controller plugins. In each case, you may either specify configuration to define plugins, or provide configuration via a Module class. Configuration follows the same format as for the ServiceManager. The following table outlines the plugin managers that may be configured this way (including the ServiceManager), the configuration key to use, the ModuleManager feature interface to optionally implement (all interfaces specified live in the ZendModuleManagerFeature namespace) , and the module method to optionally define to provide configuration.

Configuration follows the examples in the ServiceManager configuration section. As a brief recap, the following configuration keys and values are allowed:

When working with plugin managers, you will be passed the plugin manager instance to factories, abstract factories, and initializers. If you need access to the application services, you can use the getServiceLocator() method, as in the following example:

public function getViewHelperConfig() {  return ['factories' => [  'foo' => function ($helpers) {  $container = $helpers->getServiceLocator();  $someService = $container->get('SomeService');  $helper = new HelperFoo($someService);   return $helper;  },  ]]; }

This is a powerful technique, as it allows your various plugins to remain agnostic with regards to where and how dependencies are injected, and thus allows you to use Inversion of Control principals even with plugins.

zendframework.github.io


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector