-
Notifications
You must be signed in to change notification settings - Fork 52
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
Неймспейсы опять #215
Comments
Отлично, спасибо! |
@AlexeyDsov вы у себя на проекте применили эти изменения?
мне кажется это не самое лучшее решение, т.к. не дает возможности использовать сторонний автолоадер. |
У себя на проекте применили. Если "форкнуть и доработать" у меня так точно все сломается. Да и с генерацией файлов не все так просто. |
А я вот поддерживаю @pupkinV - я тоже об этом задумывался. Кстати, готов помочь, если решите заниматься этим. |
@AlexeyDsov у вас в проекте код отличается от форка masterNs, это даже не вопрос), если сейчас допилить ветку в соответствии с PSR, то, либо вы обновляете этим патчем свой проект, либо мы теряем последнего мантейнера который работает с этим кодом?) |
В текущем проекте код отличается от masterNs, кажется, всего несколькими коммитами. Допиливать masterNs до PSR0 мне кажется достаточно тяжело и весь код опять должен быть перелопачен. Сделать все в одном неймспейсе было относительно просто - нужно лишь было везде прописать namespace Onphp; Плюс код, генерирующий бизнес классы по PSR0 так же усложняется, т.к. сейчас он кладет все классы в один, заданный в xml namespace. В ином случае связи между классами сложнее (Proto, AutoProto, AutoBusiness и т.д.). Возможно не сделать PSR0 было ошибочно но более легко, в том числе и для миграции проекта на неймспейсы. Т.к. автолоадер пути до классов кеширует (кладет в tmp папочку маппинг какой класс где искать), то разницы на тот момент какой из них использовать не было. Кстати если не использовать onphp автолоадер то, думаю, не будет срабатывать по понятным причинам ClassNotFoundException. Вряд ли его кто-то использует, но факт что он должен перестанет кидаться. |
В каждом vendor своя мета и, соответствено, свой, один NS. Код точно усложнится :) за NS:
Против:
Мнение предвзятое, т.к. знаю что NS нужны, но ни разу не возникало конфликта имен и код с NS усложняется. Желательно бы выслушать опытных товарисчей |
По текущей реализации - основной код в неймспейсе проекта по PSR0/PSR4 в папочке src. Entities в папочку Entities в линейном неймспейсе \MyProject\Entities. ClassNotFoundException бросает автолоадер когда не находит какой-то класс. Он так всегда работал до переписывания и после я это сохранил. |
Раз уж в соседней теме затронули неймспейсы и есть интерес, то у меня есть ветка masterNs с неймспейсами. И сейчас я её добавил и в этот, основной, репозиторий.
Особенности ветки.
The text was updated successfully, but these errors were encountered: