Модификации IPS4

Strizh

Участник
Сообщения
79
Реакции
88
Интересно, есть ли на форуме люди, которые пишут приложения под движок IPS4?

Требуется парочка приложений, одно из которых должно быть связано с IPS.Pages и IPS.Downloads.
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #2
Таких людей очень мало в РУ
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #5
иди писать плагины на IPS.
Нет.
Я уже пытался когда-то давно. Но движок мне не понравился с технической точки. Под него писать можно, но сложно и геморройно. Он не даёт нормальную возможность "писать под него", делая всё через магические несуществующие классы __HOOK__ и прочие, которые рисуются прямо в рантайме.
Приличия ради, могли бы с включенным development-режимом генерировать PHP-файлы, дающие понять IDE, что это за нахер __HOOK__, и что он из себя представляет, но нет.
 

Strizh

Участник
Сообщения
79
Реакции
88
Знаю, что есть профильные, но а вдруг...
Все-таки проще общаться с человеком, кто в теме игровых проектов, чем с кем-то со стороны....
 

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
Ну под ips есть вполне адекватная документация, где все ясно расписано, а если ещё лучше погуглить, то можно найти, как устроена архитектура, для расширения возможностей ядра
 

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
693
Реакции
372

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #9
А я разве сказал, что её нет?
В то время, когда XF максимально старается помогать конечному разработчику, генерируя классы-пустышки и выводя прямо в админке описание обработчика события, IPS заставляет постоянно бегать в документацию.
Вот так выглядит файл с классами-пустышками для одного из моих аддонов (я его руками не пишу, его генерирует сам движок):
src/addons/.../_output/extension_hint.php:
<?php

// ################## THIS IS A GENERATED FILE ##################
// DO NOT EDIT DIRECTLY. EDIT THE CLASS EXTENSIONS IN THE CONTROL PANEL.

namespace SModders\MultilanguageNode\XFMG\Entity
{
    class XFCP_Category extends \XFMG\Entity\Category {}
}

namespace SModders\MultilanguageNode\XFRM\Entity
{
    class XFCP_Category extends \XFRM\Entity\Category {}
}

namespace SModders\MultilanguageNode\XF\Entity
{
    class XFCP_Node extends \XF\Entity\Node {}
}

И моя IDE, находя его, вполне адекватно начинает подсказывать по этому неизвестному для неё классу.
1581833711853.png

2v4WN57pxl.gif
А ещё у IPS меня честно бесит структура проекта. И их автозагрузчик.
У XF всё логично и просто (как класс назовёшь - туда и ложишь). Под капотом Composer. Если необходимо заюзать свои внешние либы - просто указываешь в addon.json путь к папке композеровских либ относительно своей папки аддона, и движок уже при старте всё загрузит.
Тут нужно раскладывать файлы по своим папкам (extensions, hooks, interface и так далее; в зависимости от типа класса), которые неявно уже в рантайме подгрузятся. Костыльным загрузчиком, функционал которого в разы меньше, чем у того же Композера (который на тот момент уже существовал, потому чем вызвано такое решение "навелосипедить свой загрузчик" - непонятно).
 
  • Мне нравится
Реакции: JDW

JDW

Мы открываем бизнес
Сообщения
376
Реакции
325
А я разве сказал, что её нет?
В то время, когда XF максимально старается помогать конечному разработчику, генерируя классы-пустышки и выводя прямо в админке описание обработчика события, IPS заставляет постоянно бегать в документацию.
Вот так выглядит файл с классами-пустышками для одного из моих аддонов (я его руками не пишу, его генерирует сам движок):
src/addons/.../_output/extension_hint.php:
<?php

// ################## THIS IS A GENERATED FILE ##################
// DO NOT EDIT DIRECTLY. EDIT THE CLASS EXTENSIONS IN THE CONTROL PANEL.

namespace SModders\MultilanguageNode\XFMG\Entity
{
    class XFCP_Category extends \XFMG\Entity\Category {}
}

namespace SModders\MultilanguageNode\XFRM\Entity
{
    class XFCP_Category extends \XFRM\Entity\Category {}
}

namespace SModders\MultilanguageNode\XF\Entity
{
    class XFCP_Node extends \XF\Entity\Node {}
}

И моя IDE, находя его, вполне адекватно начинает подсказывать по этому неизвестному для неё классу.
Посмотреть вложение 52450
Посмотреть вложение 52451
А ещё у IPS меня честно бесит структура проекта. И их автозагрузчик.
У XF всё логично и просто (как класс назовёшь - туда и ложишь). Под капотом Composer. Если необходимо заюзать свои внешние либы - просто указываешь в addon.json путь к папке композеровских либ относительно своей папки аддона, и движок уже при старте всё загрузит.
Тут нужно раскладывать файлы по своим папкам (extensions, hooks, interface и так далее; в зависимости от типа класса), которые неявно уже в рантайме подгрузятся. Костыльным загрузчиком, функционал которого в разы меньше, чем у того же Композера (который на тот момент уже существовал, потому чем вызвано такое решение "навелосипедить свой загрузчик" - непонятно).
какую ide используешь?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
Не умеет в интеллисенс классов с других файлов.
Когда Шторм хотя бы видит, откуда наследуется текущий файл и какие методы у него есть, VSCode просто нихера не может подсказать.
 

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.
Сообщения
693
Реакции
372
Сверху Снизу