2015-11-23 2 views
4

Я просто хочу знать, каким способом форматирования я должен предпочесть, если я должен объявить блок переменных.Как отформатировать блок переменных в PHP?

Я видел выравнивание стиль несколько раз:

$foo = 'foo'; 
$bar = 'bar'; 
$foobar = 'foobar'; 
$baz = 'baz'; 

и назначение стиля:

$foo = 'foo'; 
$bar = 'bar'; 
$foobar = 'foobar'; 
$baz = 'baz'; 

Есть ли стандартный способ или официальное руководство для этого? Я уже искал это в PSR-1 и PSR-2, но, похоже, эти стандарты не справляются с этим вопросом.

И если нет официального ответа, как это делают другие языки, и почему они предпочитают, как они это делают?

+1

это вопрос кодирования вкуса, стиля и выбора .. для зазора они оба выглядят чертовски прекрасны для меня..imho – Andrew

+1

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

ответ

3

Это зависит от вас. Приоритетные задания и комментарии имеют тенденцию выглядеть довольно красивыми, но они, как правило, более «поддерживаются». Например, изменение рефакторинга с помощью инструментального имени переменной может отбросить весь отступ.

Если вы не утверждают, что внимательно, вы можете в конечном итоге с кодом десять лет спустя, как:

$foobiedoobie  = 'foo'; 
$barquax = 'bar'; 
$foob = 'foobar'; 
$boob  = 'baz'; 

... как будто кто-то сделал диск-стреляя во всем вашем бережного форматирования. Мое прежнее рабочее место было таким: трудно сохранить эти стили хорошо в команде с действительно большой базой кода, и особенно в настройке контроля версий, где вы можете столкнуться с этими «съемками на диске» и столкнуться с сложное решение оставить его как есть (чтобы избежать большего количества изменений кода, чем необходимо) или исправить (и рискнуть раздражать других людей в вашей команде).

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

Между тем, принять стиль, как это:

$foo = 'foo'; 
$bar = 'bar'; 
$foobar = 'foobar'; 
$baz = 'baz'; 

... и это не совсем так хороша, - или, по крайней мере, некоторые из них могут думать так. Но это будет выглядеть примерно одинаково независимо от того, как переменные переименовываются с помощью инструментов refactoring/text find &.

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

+1

Спасибо за длинный комментарий. Он очень хорошо охарактеризовал сомнения. Моя проблема в том, что я думаю, что мне приходится реструктурировать свою программу более чистым способом, например. с дополнительным методом уменьшения количества переменных. И я также хочу, чтобы я не совершал никаких строк, потому что я редактировал только одно слово, поэтому я лично предпочитаю способ, не отступая от значения. – nemoinho

+0

В конце концов я закончил этот последний стиль. Я начал с выровненного стиля, но я прошел через такой командный опыт. Но каждый пробег может отличаться. В моем случае я работал с некоторыми slobs, которые просто использовали бы как VisualAssist, переименовали бы идентификаторы по потенциально нескольким файлам и передали бы код без исправления отступа. Если вы работаете с более добросовестной командой, которая имеет надлежащий стандарт кодирования, определяющий, как форматировать, вероятно, это не будет такой большой сделкой. Тем не менее, этот второй стиль для меня является безопасным - он немного домашний, но у него нет ... –

+0

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

0

Это зависит от контекста. Например (с Zend Framework):

$this->_mode    = $this->_detectMode(); 
    $this->_homeDirectory = $this->_detectHomeDirectory(); 
    $this->_storageDirectory = $this->_detectStorageDirectory(); 
    $this->_configFile  = $this->_detectConfigFile(); 

Но если у вас есть комментарии:

/** 
* @var string 
*/ 
protected $_storageDirectory = null; 
/** 
* @var string 
*/ 
protected $_configFile = null; 
0

PSR не говорит ни слова об этом, так как правило, нет единой конвенции. Это вопрос личных предпочтений или стандартов кодирования компании.

«Стиль выравнивания», как вы его назвали, может выглядеть лучше, но не каждый IDE может форматировать такой код (используя встроенные функции рефакторинга), поэтому это может раздражать некоторых людей, поскольку функция формата IDE «сломал» соглашение, когда вы форматируете весь файл с помощью ярлыка.

1

Лично я предпочитаю первый стиль, это более ясным и удобным для чтения, но это личное мнение

Мой совет дать суффикс для ваших переменных очень быстро узнать их тип:

$vari = 5;    # i => integer 
$vara = array("hello"); # a => array 
$vars = "hello";  # s => string 
// ... 

Это просто, но может помочь, когда вы кодируете тысячи строк :)

Смежные вопросы