Во-первых, общее кодирование
1) ОО может помочь вам в этом.Поскольку вы инкапсулируете переменные и функциональные возможности, они не выходят и не связываются с пространствами имен.Предположим, я правильно понимаю, на какую проблему вы намекаете, использование ОО-подхода помогает смягчить конфликты, которые могут возникнуть, когда вы непреднамеренно изменяете условия размещения переменных.(Примечание: Облегчить. Не полностью предотвратить самостоятельно.;)) В противном случае я столкнулся с практикой, заключающейся в добавлении имен переменных с чем-то вроде «имени пакета» - что просто сдвигает проблему на один уровень вверх и тоже не очень красиво,: |
2) «Однако подходит их цели».PHPdoc - хорошее начало;поможет создать документацию по API.
Во-вторых, OO Development:
3) Как уже было сказано ранее - "это зависит".Делай это когда нужно.Вам не нужно идти полный OO для "Привет мир".Но вы можете.Взвесьте затраты и выгоды любого маршрута и сделайте правильный выбор.Хотя я лично хочу предложить, если сомневаетесь, предпочитайте ООП «неструктурированным» подходамВ основном, знайте свои инструменты и когда их использовать - тогда вы можете легко сделать этот вызов самостоятельно.:)
4) Насколько я вижу, каталоги "структурированы как пакеты".Имейте в виду, «каталоги» и «как».Сказав это, различные структуры решили эту проблему для себя;ср;другие ответы.
5) Опять же, пожалуйста.Нет определенного способа, которым вы должны это сделать или иначе.Просто придерживайтесь его, как только вы выбрали свой путь; 3 Кроме того, определенные платформы и т. Д. Имеют свои собственные соглашения об именах.Symfony, например, использует CamelCase, как Java.
Третье рефакторинг
Я должен сказать, что это настоящая боль.
да: 3 Но это окупается.
Если я изменяю имя переменной в одном месте, мне нужно просмотреть весь документ и каждый файл, который включал этофайл и измените имя их тоже.Конечно, ошибки повсюду, что приводит.Как люди справляются с этой проблемой?В Java, если вы меняете имя в одном месте, оно меняется везде.
Нет, это не так.Если вы приобрели инструмент с поддержкой, вам придется использовать инструмент рефакторинга только один раз;но если вы переименуете свойство класса в java, ни один магический бот не будет ходить по Интернету и автоматически проверяет, что все на планете используют новое имя.;)
Но что касается того, как это предотвратить - будь умным.Уважайте программные контракты, то есть используйте интерфейсы.Не используйте функции / члены, которые вы не должны использовать напрямую.Смотреть иерархии.Используйте разумное разделение кода и уважайте границы этого разделения.
Но как люди решают эту проблему?Что ж, поиск и замена, я полагаю;)
Что касается Eclipse-Plugin - динамическая природа PHP затрудняет автоматический рефакторинг кода;мы не всегда можем использовать статический тип подсказок и т. д., а гадание типов аргументов и возвращаемых данных чаще всего невозможно.Итак, насколько мне известно, «автоматический рефакторинг» не так хорошо поддерживается инструментами, как в мире Java.Хотя я уверен в выполнимых случаях, там должны быть плагины.:)