«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Как оформлять код Аноним 2019/06/13 04:33:45  №1415605 1
grammar.png (56, 500x644)
644x500
Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md

Ответы: >>1415616 >>1415622 >>1416161
Аноним 2019/06/13 05:43:59  №1415616 2
>>1415605
> переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase
Это же упоминается только применительно к методам.
Ответы: >>1415618
Аноним 2019/06/13 06:01:32  №1415618 3
>>1415616

Верно. Но в Симфони так пишут, и ничего плохого, если те, кто не выбрал стиль, возьмут это за основу.
Аноним 2019/06/13 06:17:54  №1415622 4
>>1415605
>PSR-2
>4.3. Методы
>Открывающую фигурную скобку НЕОБХОДИМО располагать на отдельной строке
Насколько часто это соблюдается на практике? Я бы не хотел так писать, например.
Ответы: >>1415625 >>1415632
Аноним 2019/06/13 06:29:53  №1415625 5
>>1415622
скажем так, если я вижу, что кто-то в методе написал открывающую скобку на одной строке с сигнатурой, то он либо тупой поскольку не знает стандартов либо долбоеб который не хочет принимать общепринятые условия и в упрек всем пишет "так как ему нравится".

Ты надеюсь понимаешь, что если бы каждый писал так как ему нравится, то у каждого код был бы написан в разном стиле и сложнее было бы понять другого человека, для этого стандарты и придумали
Ответы: >>1415627
Аноним 2019/06/13 06:32:41  №1415627 6
>>1415625
Хорошо, но ты проигнорировал главный вопрос:
>Насколько часто это соблюдается на практике?
Ответы: >>1415649 >>1416594
Аноним 2019/06/13 06:55:18  №1415632 7
>>1415622

Я пишу на новой строке. Просто пиши как в Симфони, и проблем не будет.
Аноним 2019/06/13 07:42:34  №1415649 8
>>1415627
Вместо задавания глупых вопросов сходи на гитхаб и посмотри топовые либы - как они написаны.
Ответы: >>1415660
Аноним 2019/06/13 07:53:14  №1415660 9
>>1415649
>как они написаны
Очень хуёво написаны. Я не хочу делать также, отсюда вопрос: если допустить, что я не буду делать топовые либы для всеобщего пользования, насколько критичным будет игнорирование данного пункта стандартов? Иными словами, в отдельно взятых командах могут быть "свои" стандарты, как мне докладывали. Вопрос в том, насколько часто они идут вразрез с PSR* и насколько вообще будут доёбываться до его несоблюдения.
Ответы: >>1415664 >>1415666 >>1415685
Аноним 2019/06/13 07:56:04  №1415664 10
>>1415660
>Очень хуёво написаны.
Свой код покажи.
Ответы: >>1415665
Аноним 2019/06/13 07:57:11  №1415665 11
>>1415664
Ты понял, что я имел в виду.
Ответы: >>1415667
Аноним 2019/06/13 07:57:59  №1415666 12
>>1415660
Алсо, я бы тебя в команду не брал - ты какой-то слишком тупорогий не понимаешь элементарных вещей.
Ответы: >>1415686
Аноним 2019/06/13 07:59:08  №1415667 13
>>1415665
Я не уверен, что у тебя есть вообще какой-то опыт в программировании. Своё мнение можешь в одно место засунуть.
Ответы: >>1415669
Аноним 2019/06/13 08:00:58  №1415669 14
>>1415667
Что ты хочешь-то от меня?
Я задал вопрос, если ты не намерен на него отвечать - просто иди нахуй.
Ответы: >>1415670
Аноним 2019/06/13 08:01:23  №1415670 15
>>1415669
Ясно. Зелень ебаная.
Аноним 2019/06/13 08:32:23  №1415685 16
>>1415660

Давай посмотрим объективно: какая ценность в том, что ты пишешь код в другом стиле? Никакой, просто тебе так больше нравится. Это не аргумент, в любой команде предпочтут использовать PSR вместо потакания чьим-то личным вкусам. В open source проекте это приведет к тому, что люди будут задавать вопросы по поводу нестандартного стиля и слать pull request в стиле PSR.

Самым простым и адекватным решением будет не выпендриваться и перейти на PSR. Это не так сложно, как кажется.
Ответы: >>1415690 >>1415692 >>1415703
Аноним 2019/06/13 08:33:45  №1415686 17
>>1415666

Не надо переходить на оскорбления. Он к тебе в команду и не напрашивался.
Ответы: >>1415700
Аноним 2019/06/13 08:38:18  №1415690 18
>>1415685
в опенсорс проекте просто пошел нахуй если твой код не в том кодстайле что и проект
Аноним 2019/06/13 08:40:39  №1415692 19
>>1415685
А на практике никто не особенно не докапывается до кодстайла потому что есть строки и они как правило горят, если ты будешь коллеге закрывать PR потому что у него скобки не так стоят, когда у него прод лежит и ему надо срочно запушить ты навлечешь на себя много нелюбви. Потому PRS крайне желателен, но не всегда обязателен.
Ответы: >>1415703
Аноним 2019/06/13 08:47:27  №1415700 20
>>1415686
А я твоих советов не спрашивал. Иди нахуй.
Аноним 2019/06/13 08:50:32  №1415703 21
>>1415685
>просто тебе так больше нравится
Достаточное условие, чтобы начать так делать, если это не создаст никому серьёзных проблем. В чём и был вопрос. Судя по всему, он был задан очень непонятно, хуй его знает.
Не так сложно, безусловно. Но если можно этого не делать - я бы предпочёл не делать.
> В open source проекте
есть гайд для контрибьюторов, где такие вещи, как кодинг стайл, обычно описываются, если они неочевидны. Ну и, конечно же, некоммерческие проекты, которые я сам выбираю, на чём делать, я бы в жизни не выбрал делать на вашей пыхе.

>>1415692
Спасибо, буду иметь в виду и класть хуй на стандарты.
Ответы: >>1415705
Аноним 2019/06/13 08:53:45  №1415705 22
>>1415703
>Спасибо, буду иметь в виду и класть хуй на стандарты.

Просто нажимаешь ctrl+alt+l и не имеешь проблем и никому не ебешь мозги
Аноним 2019/06/14 04:27:04  №1416161 23
>>1415605
Зачем нужны четыре пробела, если есть таубляция? Ладно бы отбивалось одним-двумя пробелами, но визуально-то одно и то же!
Ответы: >>1416169 >>1416408
Аноним 2019/06/14 05:18:22  №1416169 24
1.png (3, 338x190)
190x338
2.png (5, 832x168)
168x832
Ответы: >>1416173 >>1416225
Аноним 2019/06/14 05:34:40  №1416173 25
>>1416169
А нахуя ты таб по 4 раза жмакал, долбоеб
1 таб = 4 пробелам визуально.
Аноним 2019/06/14 08:06:23  №1416225 26
>>1416169
Ширину табуляции в любой IDE настроить можно. Ставь хоть с пробел.
Мне вот таб легче нажать, чем как обезьянка пробел дрочить по 4 раза на строку, а то и больше.
Ответы: >>1416344
Аноним 2019/06/14 10:55:58  №1416344 27
>>1416225
Ну так по секрету, все так и делают, никто не дрочит пробел.
Ответы: >>1416375
Аноним 2019/06/14 11:35:11  №1416375 28
>>1416344
А что я постоянно эти вопросы встречаю везде?
Ответы: >>1416436
Аноним 2019/06/14 12:36:41  №1416408 29
>>1416161
В какой-то момент выбора между табами и пробелами вылезли художники-педерасты и начали пронзительно верещать, что они хотят что бы один и тот же код повсюду выглядел одинаково, в то время как табы по разному отображаются в различных IDE/редакторах. К сожалению, им не успели насрать на лицо и поэтому блядские пробелы теперь стандарт.
Ответы: >>1416422 >>1416733
Аноним 2019/06/14 13:05:04  №1416422 30
>>1416408
>табы по разному отображаются в различных IDE/редакторах
Какой-то хуёвый аргумент - они отображаются как настроено.
Что за инвалиды не могут сделать себе как нравится: хоть 1 отступ, хоть 8, если такой любитель? С пробелом такие штуки не получится вытворить.
Ответы: >>1416424 >>1416443 >>1416733
Аноним 2019/06/14 13:07:14  №1416424 31
>>1416422
А ещё IDE обычно с табуляцией немного код подравнивает, в силу своего ума. Пробелы тут тоже сосут.
Аноним 2019/06/14 13:25:19  №1416436 32
>>1416375
Потому что ты сидишь на борде для детей.
Аноним 2019/06/14 13:40:54  №1416443 33
>>1416422
>Какой-то хуёвый аргумент - они отображаются как настроено.
Вот именно. А пачке педиков было неприятно, что код, который они выравнивали в соответствии со своими художественными вкусами, у кого-то будет выглядеть по другому.
Ответы: >>1416458 >>1416558
Аноним 2019/06/14 14:16:55  №1416458 34
>>1416443
Ещё с табами можно динамически отображать вложенность операторов просто меняя ширину отступа, но не меняя при этом исходников.
Ответы: >>1416735
Аноним 2019/06/14 17:27:09  №1416558 35
>>1416443
Хуйня может получтся если табы с пробелами смешивать. Если ты отбиваешь отступы табами - ты не хочешь чтобы IDE меняло их на пробелы. Соответственно не подравнивай код пробелами иначе у другой макаки может хуита получится у которой ширина таба другая
Аноним 2019/06/14 18:29:20  №1416594 36
>>1415627
>Насколько часто это соблюдается на практике?
кем? В любой нормальной фирме с нормальными программистами придерживаются стандартов.

Если ты кодишь для себя и никто с твоим кодом работать не будет кроме тебя, то пиши как хочешь, а в противном случае придерживайся стандартов.
Ответы: >>1416628
Аноним 2019/06/14 19:35:12  №1416628 37
>>1416594
>Если ты кодишь для себя
Я сначала так и хотел, когда начинал. Теперь только по рекомендациям и пишу - там многие мелочи за меня продумали. Совсем ленивый стал.
Аноним 2019/06/15 06:03:21  №1416733 38
>>1416408
>>1416422

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

Ну и я не понимаю: если тебе хочется поменять величину отступов (странное желание, ну ладно), что тебе мешает делать это с пробелами? Напиши плагин к редактору, который будет при выводе заменять каждые N пробелов на M. И все будет настраиваться без всяких табов.

Ты пишешь "что за инвалиды...", а я не понимаю, что ты за инвалид, который не может написать элементарный плагин для изменения отступов при выводе.
Ответы: >>1416768 >>1416769
Аноним 2019/06/15 06:05:45  №1416735 39
>>1416458

То же самое можно элементарно делать в пробелами. напиши плагин к своему убогому редактору, который будет вместо N пробелов подряд выводить M.
Ответы: >>1416768
Аноним 2019/06/15 08:24:59  №1416768 40
>>1416733
>>1416735
>напиши плагин
Ты надеюсь понимаешь как это ебануто звучит? Вместо целевой разработки я должен заниматься переделкой IDE.
Толсто в общем.
Ответы: >>1416951 >>1416953
Аноним 2019/06/15 08:28:25  №1416769 41
>>1416733
>Напиши плагин к редактору, который будет при выводе заменять каждые N пробелов на M.
Уже есть такой плагин - табуляция.
Аноним 2019/06/15 17:15:32  №1416951 42
>>1416768

Ради тебя одного другие не должны испытывать неудобства. Менять величину отступа хочешь ты, потому и плагин писать придется тебе.

Меня пробелы полностью устраивают. Вот мне делать нечего, вместо того, чтобы думать над программой, думать, где я должен табы, а где пробелы ставить.
Аноним 2019/06/15 17:17:54  №1416953 43
>>1416768

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