Создаем сам шаблон вида page-произвольное_имя.php
page-{your-page-slug}.php
, то это динамический шаблон, который будет использоваться согласно иерархии шаблонов и будет использован для страницы со слагом 'your-page-slug' (например, у вас есть страница example.com/contact-us, шаблон для нее будет page-contact-us.php).tmpl-your-custom-template-name.php
/**
* Returns plural form
* @param integer $n number of items
* @param string $one
* @param string $some
* @param string $many
* @example echo plural_form(42, 'арбуз', 'арбуза', 'арбузов');
*/
public static function pluralForm($n, $one, $some, $many) {
return $n%10==1&&$n%100!=11?$one:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$some:$many);
}
export function declOfNum(num, titles) {
const cases = [2, 0, 1, 1, 1, 2];
return titles[(num % 100 > 4 && num % 100 < 20)
? 2
: cases[(num % 10 < 5) ? num % 10 : 5]
];
}
declOfNum(3, ['день', 'дня', 'дней']) // дня
Каждая таблица InnoDB имеет кластерный ключ. Каждая. Без исключения.
Гораздо интереснее, какие поля для этого выбираются.
Если в таблице задан PRIMARY KEY — это он
Иначе, если в таблице есть UNIQUE (уникальные) индексы — это первый из них
Иначе InnoDB самостоятельно создаёт скрытое поле с суррогатным ID размером в 6 байт
До третьего пункта лучше не доводить свой многострадальный сервер, и добавить таки ID самостоятельно.
И не забывайте, что InnoDB во вторичных ключах хранит полный набор значений полей кластерного ключа в качестве ссылки на конечную строку в таблице. Чем больше первичный ключ, тем больше вторичные ключи.
Зачем явно создавать колонку с первичным ключом, если она так и так будет создана?
В этой связи у меня напрашивается вопрос - насколько new Query() и createCommand() являются признаками говнокода? Придется ли краснеть, когда этот код увидит другой программист, или можно будет сказать "и так нормально"?
Но, жизненный опыт подсказывает, что когда задача будет сделана в черновом варианте, появятся новые "срочные штуки", и код будет оставлен таким, как есть
composer require vendor/package
, либо в composer.json
вручную добавить его и затем composer update vendor/package
. А так composer
просто читает зависимости из composer.lock файла