Попробуйте использовать call_user_func()
foreach ($arr as $value) {
echo call_user_func([$test1,$value]);
}
По сути, вы хотите, чтобы ваш проект работал «из коробки». Когда люди выбирают для задачи правильный проект с открытым исходным кодом, они загружают кучу проектов, которые говорят, что поддерживают задачу, и используют лучший из них. Если для настройки проекта требуется значительная работа (например, загрузка 20 зависимостей JAR с 20 разных сайтов), большинство людей либо попробуют его в крайнем случае, либо просто проигнорируют.
Репозиторий : вы можете попробовать какой-нибудь новый движок репозитория. - например, Mercurial или Git . Они облегчают разработку и упрощают объединение веток. Однако важно выбрать движок, который изначально поддерживается вашей IDE.
Зависимости : вы должны использовать readme для определения зависимостей, но этого недостаточно, либо используйте Maven для управления зависимостями, и в этом случае вам просто нужно включить файл pom.xml
, либо включить JAR-файлы, от которых вы зависите, в вашем дистрибутиве. Во втором случае разделите зависимости на обязательные
, необязательные
, время компиляции
и тест
. Примером необязательной зависимости являются инструменты генерации байт-кода для Hibernate.
Сайт : Maven может создать сайт , связанный с конкретной версией вашего программного обеспечения (хотя никогда не использовал его).
Документация - JavaDoc : Все документируйте и старайтесь применять политику, обеспечивающую высокое качество документации javadoc:
/**
* Sets the cost
* @param decimal cost
*/
public void setCost(BigDecimal decimal){
бесполезно. Лучше:
/**
* Sets the cost, cost is in currency setted by #setCurrency.
* @param decimal cost, precision shoule be at least three places
*/
public void setCost(BigDecimal decimal){
Документация : Javadoc недостаточно. Дайте некоторую отправную точку - обучение предпочтительнее (а я не Я имею в виду туториал со множеством скриншотов диалоговых окон eclipse;)). Пример кода тоже в порядке, или, по крайней мере, напишите где-нибудь - «Чтение javadoc класса EntryPoint
- хороший способ начать использовать эту библиотеку». Если у вас есть только javadocs, любому, кто рассматривает возможность использования вашей библиотеки, будет представлен список всех классов и пакетов, и он не будет знать, с чего начать.
Программное обеспечение для отслеживания ошибок : вы не запомните больше трех ошибок за раз (и забудете вещи) - также оно поможет вам управлять задачами и новыми желаемыми функциями. Если у вас есть только javadocs, любому, кто рассматривает возможность использования вашей библиотеки, будет представлен список всех классов и пакетов, и он не будет знать, с чего начать.
Программное обеспечение для отслеживания ошибок : вы не запомните больше трех ошибок за раз (и забудете вещи) - также оно поможет вам управлять задачами и новыми желаемыми функциями. Если у вас есть только javadocs, любому, кто рассматривает возможность использования вашей библиотеки, будет представлен список всех классов и пакетов, и он не будет знать, с чего начать.
Программное обеспечение для отслеживания ошибок : вы не запомните больше трех ошибок за раз (и забудете вещи) - также оно поможет вам управлять задачами и новыми желаемыми функциями. Вы можете попробовать:
Программное обеспечение для управления проектами : оно поможет вам рассчитать даты выпуска, распределить задачи между разработчиками и т. Д.
Попробуйте пройти тест Джоэла
Процесс сборки : Сделайте процесс сборки одним щелчком мыши. Например, сценарий ant, который увеличивает номер версии, запускает сборки maven, развертывает сайт и т. Д.
Форум : Хорошая идея, поможет поддержка.
Wiki : Во многих (даже довольно развитых) проектах такие вики довольно пусты, что плохо (поскольку заставляет людей думать: «Как это может быть отличное программное обеспечение, если никто не пишет в этой вики»).
Одна вещь, которую вы обязательно должны сделать (потому что это Java), - это сгенерировать Javadocs для вашего кода. Это означает комментирование классов и методов с использованием нотации Javadoc для облегчения чтения другим.
Вы также можете использовать Maven для выпуска кода. С его помощью довольно легко создать сайт для вашего проекта, указать зависимости, оптимизировать выпуски ... Например, проекты Commons в Apache используют Maven.
Спланировать разработку какого-либо типа веб-сайта. Если ваш код включает веб-программное обеспечение, люди действительно удивляются, если вы используете его как часть своего сайта.
Разработчикам нравится хорошая документация и множество примеров. Я видел проекты, в которых много мощного кода, но 0% документации терпят неудачу.
Наличие вики-настройки, позволяющей людям писать идеи и рецепты, является несомненным плюсом. (Рекомендую mediawiki).
Форум для публикации идей и обсуждений, то есть форум сообщества тоже хорошо.
Создайте список рассылки и побудите людей присоединиться.
Публикуйте реальные обновления в своем списке рассылки, на вики-сайте, а также как новости на вашем основном сайте, чтобы показать, что вы действительно работаете над чем-то. Поощряйте участие. Сделайте себя доступным. Все это создает ощущение, что вы заинтересованы в участии и открыты для комментариев других.
Я предлагаю использовать MAVEN в качестве инструмента для управления внешними зависимостями, необходимыми для сборки / запуска
Вы также можете использовать Vulcan или аналогичный для непрерывной интеграции, так что известно, действительно ли текущая версия работает или нет.
Создать журнал изменений из комментариев к отметкам. Отдельно создайте примечание к выпуску, объясняющее, что вы исправили / добавили в каждом выпуске.
Я знаю, что Maven уже упоминался, но я думаю, что даже более важным, чем использование Maven, является публикация артефактов в репозиториях Maven, чтобы проекты, которые действительно используют Maven, могли их использовать. SourceForce и т. Д. Все предлагают это)