Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Автозагрузка модулей #12

Open
mmjurov opened this issue Dec 14, 2015 · 3 comments
Open

Автозагрузка модулей #12

mmjurov opened this issue Dec 14, 2015 · 3 comments
Milestone

Comments

@mmjurov
Copy link
Member

mmjurov commented Dec 14, 2015

Уже надоело смотреть, как половина всего кода содержит подключение нужного модуля. Нужно изучить вопрос, возможно ли выполнить автозагрузку модуля и если да, то реализовать.

@mmjurov mmjurov added this to the 1.0 milestone Dec 14, 2015
@mlavrinenko
Copy link
Member

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

@mmjurov
Copy link
Member Author

mmjurov commented Jan 25, 2016

При автозагрузке у нас есть только одно основание для поиска модуля - это полное имя класса. В случае с d7 по спецификации первым должно быть имя вендора, потом имя модуля, а потом уже все остальное, поэтому со встроенными модулями вроде не должно возникнуть проблем.
А вот в случае со старым ядром, возможно не все классы следуют правилам именования, но большинство основных - должны (CIBlock_, CSale_, CCatalog* и пр)

Может вообще на это забить?) Не такая уж это и большая проблема на самом деле ... с развитием d7, я думаю, эта проблема вообще отпадет

@mlavrinenko
Copy link
Member

[offtop]Меня терзают большие сомнения что старые классы вообще уйдут или уйдут в обозримом будущем, потому что сейчас D7 применяется для "прямо" работы с БД не сохраняя связанность объектов системы. При этом это не то чтобы недоработка текущей D7, просто в том виде в котором мы сейчас иногда работаем с D7 уже нельзя будет работать с полноценной. Т.е. когда выйдет "полноценная" D7 текущий код на D7 возможно будет работать с неприятными глюками :)[/offtop]

Касательно автозагрузки я думаю полу-решение в виде определения по имени старого класс C будет полезно, а больше заморачиваться и не стоит

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants