Соглашения об именовании переменных в CakePHP - PullRequest
2 голосов
/ 10 июля 2009

Каков наилучший способ именования переменных, которые содержат несколько слов? Изучив множество проектов, доступных в CakePHP forge , я заметил, что люди используют camelCase, подчеркивание или camelCase для переменных и подчеркивание для данных, отправляемых в представление.

Примером последнего будет:

$activeSites = $this->Site->find('all',array('conditions'=>array('Site.active' => '1'), 'recursive' => -1));
$this->controller->set('active_sites', activeSites);

Ответы [ 7 ]

7 голосов
/ 10 июля 2009

В соответствии с соглашениями о присвоении имен, используемыми для самого CakePHP (http://book.cakephp.org/view/509/Coding-Standards#Variables-609), переменные именуются следующим образом:

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

5 голосов
/ 10 июля 2009

Как скажет вам большинство людей, не существует «лучшего способа» именования переменных, кроме как быть последовательным. Выберите соглашение о наименовании, которое вам нравится больше всего, и придерживайтесь его. Если вы продолжаете работу над проектом, придерживайтесь соглашения об именах, которое уже существует. Это все, что я могу вам посоветовать.

1 голос
/ 29 апреля 2011

Имена переменных должны быть как можно более описательными, но также и максимально короткими. Нормальные переменные должны начинаться со строчной буквы и должны записываться в camelBack? в случае нескольких слов. Переменные, содержащие объекты, должны начинаться с заглавной буквы и каким-то образом ассоциироваться с классом, объектом которого является переменная. Пример:

<?php  
     $user = 'John';
     $users = array('John', 'Hans', 'Arne');
     $Dispatcher = new Dispatcher();
?>
1 голос
/ 29 апреля 2011

создатели Cakephp используют стиль camelCase

1 голос
/ 10 июля 2009

Нет правильного или неправильного ответа на этот вопрос. Я обычно называю это:

$active_sites = $this->Site->find('all',array('conditions'=>array('Site.active' => '1'), 'recursive' => -1));
$this->controller->set('active_sites', $active_sites);

Я думаю, что все в порядке, но ваш пример показал, что переменные в представлении и контроллере не совпадают. Этого можно избежать, приняв $ active_sites или $ activeSites повсюду.

(На самом деле через некоторое время я начинаю везде использовать подчеркивание.)

0 голосов
/ 02 июня 2018

для cakePHP должно быть camelCase .

0 голосов
/ 10 июля 2009

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

Примеры без учета регистра:

  • Атрибуты GET / POST - но на стороне сервера они могут обрабатываться с учетом регистра
  • URL - но на стороне сервера они могут обрабатываться с учетом регистра
  • имена файлов в windows - но при передаче в * nix систему они чувствительны к регистру
...