Ответ 1
- Константы
- Поля видимость (общедоступная, защищенная, закрытая)
- Конструктор и деструктор и другие магические методы
- Методы видимости (public, protected, private)
Если у меня есть время, я пытаюсь поместить их в алфавитном порядке, P
Скажите, что вы объявляете класс со всеми колоколами и свистами - конструктор и деструктор, общедоступные, частные, защищенные и статические методы и свойства, магические методы и т.д.
Как вы все это логически организуете? Например, вы группируете вещи по видимости? Вы переименовываете имена алфавитов? Вы объединяете магические методы вместе? Вы положили конструктор в начале и деструктор в конце?
Очевидно, это субъективно, но мне любопытно узнать, что сработало для других, или то, что вам легко найти при чтении кода других.
Если у меня есть время, я пытаюсь поместить их в алфавитном порядке, P
как это
class Foobar
{
var $public;
function __construct(....
function public_method_1()...
function public_method_2()...
//
var $_priv;
function _private_1()...
function _private_2()...
}
в основном, самый интересный (для пользователей класса) первый
Сначала статические статические кланы, а следующая переменная класса. то я обычно помещаю конструктор в качестве первого метода (или если это класс с "init" или какой-либо другой метод, называемый каркасом, я поместил бы это вверху)
После этого я пытаюсь просто сохранить связанные методы, сгруппированные вместе, чтобы иметь наименьшее количество прокрутки, но через некоторое время может стать беспорядочным.
Наличие среды IDE, такой как Eclipse + PDT или vsPHP, покажет вам общее представление вашего класса, и вы можете отсортировать методы по своему усмотрению, чтобы не обойтись с помощью кода.
Лично я помещаю переменные класса наверху (видимость), затем магические методы, затем общедоступные методы, затем защищенные/частные методы. Это комбинация упорядочивания вещей в большинстве случаев, часто отредактированных до наименее часто отредактированных, и делает очевидным, что происходит в важных методах (поэтому магические методы выше, чем они обычно были бы).
Я предполагаю, что единственная организация, которую я делаю внутри функции, ставит __construct на фронт, после чего класс растет без какой-либо организации с моей стороны, но я обычно начинаю с непубличных функций и заканчиваю с публичными функциями
Лично у меня есть константы класса вверху; свойства следующие, пытаясь поддерживать в порядке частных, защищенных, а затем общественных. Для методов я сначала использую геттеры и сеттеры, затем другие внутренние методы свободно группируются вместе, а затем __construct и другие магические методы, причем любые статические методы сохраняются... но я редко заканчиваю тем, что полностью придерживался этого порядка.
Чтобы быть честным (и это будет звучать как плохая практика), я не прилагаю никаких усилий, чтобы организовать их в каком-либо конкретном порядке. Работа с Visual Studio и Resharper означает, что он в значительной степени не нужен.