Допускаются ли пакеты/классы с похожей функциональностью?

Никаких проблем с конкурирующими пакетами не возникает, однако мы бы хотели избежать появления 10-ти классов шаблонов, 7-ми различных классов по работе с почтой и 3-х врапперов для баз данных, которые будут выполнять одни и те же действия, отличаясь только именами функций.

Для начала, задайте себе вопрос: "Почему я хочу добавить новый пакет?". Самые плохие варианты ответа это: "Хочу увидеть мое имя в списке участников PEAR" и "Я не понимаю API уже существующего пакета".

Обычно, причиной добавления нового пакета является отсутствие функциональности, особенности поведения или проблемы со скоростью/эффективностью у существующего пакета. В этом случае, вы должны удостовериться в том, что расширить или улучшить этот класс/пакет невозможно. Если это действительно так, то вам действительно следует добавить новый пакет. "Действительно невозможно" означает, что нет никакой возможности добавить новую функциональность без изменения основ класса/пакета.

Если вы все-таки решили создать новый класс - старайтесь поддерживать совместимость API со старыми классами настолько, насколько это возможно. Если это невозможно в принципе - попробуйте сделать враппер для поддержания совместимости. И неважно, что этот враппер может требовать значительных ресурсов - так или иначе, но он значительно упростит процесс миграции.

Добавление конкурирующего класса обязательно должно быть согласовано в листе разработчиков PEAR!