исключительный или множественный на контроллерах моделей?

если у меня есть модель потока и контроллер.

это должно быть в исключительном или множественном и для модели и для контроллера?

я мог показать поток и также перечислить потоки.

не знайте то, что я должен использовать.

$thread->get_lists(); // doesnt sound good
$threads->show(); // doesnt sound good
10
задан Gordon 13 December 2011 в 14:48
поделиться

4 ответа

Это не имеет значения .

Я лично использую единственное число для моделей и множественное число для контроллеров.

Однако важно, чтобы вы выбрали схему и были последовательны .

15
ответ дан 3 December 2019 в 16:52
поделиться

KohanaPHP обрабатывает их единственное / множественное число компонентов MVC очень хорошо. Я бы проверил это для справки, поскольку это имеет смысл. Но когда дело доходит до этого, на самом деле это не имеет значения и зависит от программиста. Я имею в виду, если вы получаете кучу списков, используйте get_lists () или если вы получаете содержимое списка, используйте get_list ().

2
ответ дан 3 December 2019 в 16:52
поделиться

No.

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

constant () является альтернативным способом получения константы, но вызов функции не может быть помещен в последовательность без конкатенации.

Manual on constants in PHP

-121--678727-

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

Если предположить, что варианты действительно последовательны, как в вашем примере, возможная, старая добрая реализация сценариев DOM выглядит следующим образом:

var destinationSelect = document.getElementById("destination");
var options = destinationSelect.getElementsByTagName("option");

var optgroups = [];

while(options.length > 0) {

  var option1 = options[0];
  var option2 = options[1];
  var optgroup = document.createElement("optgroup");
  var label = option1.innerHTML.replace(/^[^\-]-/, "");
  optgroup.setAttribute("label", label);
  destinationSelect.removeChild(option1);
  destinationSelect.removeChild(option2);
  optgroup.appendChild(option1);
  optgroup.appendChild(option2);

  optgroups.push(optgroup);
}

for(var i = 0; i < optgroups.length; i ++) {
  destinationSelect.appendChild(optgroups[i]);
}
-121--3338936-

Как и другие сказали, это не имеет значения.

Что касается моделей, я хотел бы использовать единственное число, когда класс представляет одну строку, например, при использовании Active Record или Table Row Gateway и множественное число при работе с классами, представляющими таблицы и наборы записей, просто потому, что я мог бы сделать это возвращение или содержать классы с единственными именами и я мог бы различать их. Но опять же, я мог бы точно так же назвать их UserTable, UserCollection и User. Используйте то, что наилучшим образом представляет ваш домен.

Некоторые рамки имеют соглашение об именовании моделей и контроллеров для работы с некоторыми автоматическими системами. Например, сингулярные модели будут по умолчанию перегибаться, чтобы использовать таблицы множественного числа, поэтому не нужно сопоставлять их самостоятельно. Это называется convention over configuration ; , потому что обычно вы все еще можете настроить его так, как считаете нужным.

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

2
ответ дан 3 December 2019 в 16:52
поделиться

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

Я воспользуюсь вашим примером потока:

Если каждый объект моделирует один поток, назовите класс «Поток». Если он моделирует несколько потоков одновременно, назовите его «Threads» (или «ThreadCollection» или тому подобное).

(1) Если вам нужны оба, представление одного потока и представление нескольких потоков одновременно, используйте два разных класса (Thread и Threads) или создайте массив или коллекцию для последний. Тогда все будет чисто: $ thread-> show (); $ thread-> list ();

4
ответ дан 3 December 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: