modulite
                                
                                
                                
                                    modulite copied to clipboard
                            
                            
                            
                        Публичный API модуля
Было бы здорово иметь возможность настраивать публичные контракты только по определенной папке (слою), вместо классов.
Например, если использовать слои из DDD: Application, Domain, Ifrastructure, то в модуле/подмодуле можно было бы сделать публичным всю папку Ifrastructure, а остальные бы остались приватными. Либо сделать слой/папку API к которым другие модули могут обращаться.
Сейчас же такое можно реализовать с выделением подмодуля, но это не то что нужно. Поэтому остаётся только прописывать все классы данной папки для публичного доступа.
Если вам нужно в "папке" прописывать все классы для публичного доступа, то просто не инициализируйте в этой "папке" modulite.
Да, можно сделать так, я об этом писал выше:
Сейчас же такое можно реализовать с выделением подмодуля, но это не то что нужно.
При таком использовании получится, что modulite будет использоваться не как модуль с точки зрения задумки и идеологии. Потому что с точки зрения структуры это модуль с разными слоями. Из-за этого так же увеличится количество файлов modulite и нарушится понимание для всех того что такое модуль…
Например модуль Заказ будет иметь данную структуру:
src/
    Order
        Adapter
        Application
        Domain
        Infrastructure
Из этого модуля к слою Adapter  могут обращаться все модули:
export:
     - Adapter\\*
При этом в данном модуле слой  Infrastructure  может иметь зависимости от всего:
require:
     - *
или определенных namespace или их префиксов:
require:
     - Symfony\\*
     - Ramsey\\*
     - Doctrine\\Common\\Collections\\ArrayCollection
Таким образом мы можем более гибко контролировать такие принципы как «open и closed» «High Cohesion и Low Coupling». Я знаю, что modulite не для тех целей, как Deptrac. Однако уже сейчас есть реализация с полными именами классов в export и require я всего лишь хочу упросить данную возможность для большого списка классов-зависимостей и экспортируемых классов в modulite. Буду рад, если это примется в Modulite, надеюсь, что это поможет многим.
В любом случае уже сейчас пробую на своих проектах данный инструмент и в целом инструмент хороший, так как тесно связан с редактором, в первую очередь.
Спасибо за удельное время!
Поддерживаю!
Особенно не хватает возможности разрешить использовать любые либы определенного вендора.
require:
     - "#psr/*"