Я нахожусь на стадии предварительного релиза проекта PHP с открытым исходным кодом, который, я надеюсь, будет использован другими разработчиками в их собственных проектах. В настоящее время проект не поддерживает пространства имен, и я пытаюсь оценить, следует ли использовать пространства имен или соглашение об именовании PEAR Dir_Subdir_Class, которое, похоже, имеет все те же технические преимущества без некоторых недостатков. Если честно, это нелегкий выбор.
Некоторые соображения относительно пространств имен:
- Один из способов, которыми мой проект пытается дифференцировать себя, предоставляя более простой API, чем другие подобные проекты. Поскольку пространства имен являются новыми, а также потому, что они более сложны, чем соглашение об именах PEAR, введение их в кодовую базу сделает мой проект менее простым в использовании. Реализуя их, я теряю некоторую дифференциацию с точки зрения простоты использования.
- Хотя я вижу некоторые преимущества для пространств имен, они, похоже, не решают проблему, которую необходимо решить в современном продукте PHP, использующем соглашение об именах PEAR. Конфликты имен при использовании моего проекта должны быть минимальными, если не существующими.
- Эта статья дает мне некоторую паузу в освоении пространств имен, поскольку их реализация была менее чем звездной.
- Я также не решаюсь прыгнуть на подножку, которая может никуда не денется. Поскольку пространства имен являются новой функцией PHP, я еще не уверен, что они станут стандартными.
- Совместимость. Почти весь код PHP, который когда-либо был написан, не использует пространства имен, поскольку это новая функция. Другие библиотеки были бы несовместимы без преобразования.
Некоторые моменты для использования пространств имен:
- Восприятие. Если пространства имен станут стандартными и лучшими практиками, мой проект может быстро стать непрофессиональным и устаревшим без них.
- Соревнование. Хотя некоторые конкурирующие проекты PHP начинают использовать пространства имен в своих последних версиях, многим еще предстоит сделать скачок. Теперь это может помочь моему проекту в других проектах.
- Дальнейшая работа была бы проще, если бы я сделал переход сейчас, прежде чем проект станет общедоступным, а не после, когда мне придется некоторое время поддерживать две его версии.
- Я хочу поддержать лучшие практики, и если пространства имен станут лучшей практикой для PHP, мой проект должен использовать их.
Из того, что я могу сказать, вы должны выбрать тот или иной путь; Вы не можете сделать оба. Есть ли моменты, которые я не учел? Существуют ли какие-либо объективные признаки (не пламенные войны, пожалуйста), которые указывают на или против того, что пространства имен становятся профессиональным стандартом для PHP? Я был бы признателен за любую информацию или ресурсы, которыми вы бы хотели поделиться, поскольку мне нужно принять решение в ближайшее время.