Подтвердить что ты не робот

Как вы организовываете методы и свойства внутри класса?

Скажите, что вы объявляете класс со всеми колоколами и свистами - конструктор и деструктор, общедоступные, частные, защищенные и статические методы и свойства, магические методы и т.д.

Как вы все это логически организуете? Например, вы группируете вещи по видимости? Вы переименовываете имена алфавитов? Вы объединяете магические методы вместе? Вы положили конструктор в начале и деструктор в конце?

Очевидно, это субъективно, но мне любопытно узнать, что сработало для других, или то, что вам легко найти при чтении кода других.

4b9b3361

Ответ 1

  • Константы
  • Поля видимость (общедоступная, защищенная, закрытая)
  • Конструктор и деструктор и другие магические методы
  • Методы видимости (public, protected, private)

Если у меня есть время, я пытаюсь поместить их в алфавитном порядке, P

Ответ 2

как это

class Foobar 
{
      var $public;

      function __construct(....

      function public_method_1()...
      function public_method_2()...

      //

      var $_priv;

      function _private_1()...
      function _private_2()...
 }

в основном, самый интересный (для пользователей класса) первый

Ответ 3

Сначала статические статические кланы, а следующая переменная класса. то я обычно помещаю конструктор в качестве первого метода (или если это класс с "init" или какой-либо другой метод, называемый каркасом, я поместил бы это вверху)

После этого я пытаюсь просто сохранить связанные методы, сгруппированные вместе, чтобы иметь наименьшее количество прокрутки, но через некоторое время может стать беспорядочным.

Наличие среды IDE, такой как Eclipse + PDT или vsPHP, покажет вам общее представление вашего класса, и вы можете отсортировать методы по своему усмотрению, чтобы не обойтись с помощью кода.

Ответ 4

Лично я помещаю переменные класса наверху (видимость), затем магические методы, затем общедоступные методы, затем защищенные/частные методы. Это комбинация упорядочивания вещей в большинстве случаев, часто отредактированных до наименее часто отредактированных, и делает очевидным, что происходит в важных методах (поэтому магические методы выше, чем они обычно были бы).

Ответ 5

Я предполагаю, что единственная организация, которую я делаю внутри функции, ставит __construct на фронт, после чего класс растет без какой-либо организации с моей стороны, но я обычно начинаю с непубличных функций и заканчиваю с публичными функциями

Ответ 6

Лично у меня есть константы класса вверху; свойства следующие, пытаясь поддерживать в порядке частных, защищенных, а затем общественных. Для методов я сначала использую геттеры и сеттеры, затем другие внутренние методы свободно группируются вместе, а затем __construct и другие магические методы, причем любые статические методы сохраняются... но я редко заканчиваю тем, что полностью придерживался этого порядка.

Ответ 7

Чтобы быть честным (и это будет звучать как плохая практика), я не прилагаю никаких усилий, чтобы организовать их в каком-либо конкретном порядке. Работа с Visual Studio и Resharper означает, что он в значительной степени не нужен.