(?:,?\s*(?:(\"[^\"]*\")))?
по несколько раз и получил нужный результат (т.е. несколько групп будет в рамках одного match, да и количество групп поддерживается не больше количества скопированного шаблона). Попробовал сократить через DEFINE, но он тоже не поддерживается, видимо. Сделать этот "хвост" именованной группой и использовать ее тоже не получится, т.к. содержимое разное.Он перешёл на предпоследнюю ветку и не удаляя последнюю, закоммитилсячто еще за "последние" и "предпоследние" ветки, какие-то новые понятия в git?
Как соединить коммиты и исправить ситуацию?в ветке main сделать (на выбор):
git reset --hard origin/main
, тогда main станет соответстовать origin/main, но коммиты e32d4e8
и 690c2b9
пропадут, но не из истории, так что их можно будет подтянуть: git cherry-pick e32d4e8
, git cherry-pick 690c2b9
git reset --soft origin/main
, посмотреть git status
и сделать новые коммитыgit rebase origin/main
, тогда коммиты e32d4e8
и 690c2b9
начнут применяться заново, начиная с коммита 69805c1
(в ходе применения могут возникать конфликты, а так же у применяемых коммитов будет новый хэш)git rebase -i origin/main
(интерактивный ребейз), почти то же самое, как предыдущее, но сначала откроется текстовый редактор (который в git указан как редактор по умолчанию) и в нем можно будет указать как именно делать ребейз, например можно будет не переность коммит 690c2b9
или изменить сообщение коммита$str = "$status['Совершенно_новое'] = 'Brand_new<br>New'";
$pattern = "(?<=\$status\[')([а-яА-ЯёЁa-zA-Z]+?.*')([A-za-z]+?.*)(?=')";
preg_match($patern, $str, $matches);
var_dump($matches);
// полный match и группы
\$status\['([^']+)'\][^']*'([^']*)'
?>
и писать чистый HTML, можно посреди HTML открыть PHP тег <?php
и воспользоваться языком, например вывести HTML в цикле (опять же, закрыв тег после начала цикла), или использовать переменную как значение, или выводить HTML по условию.тут всякие визуальные уточнения страницы; форма, css специфика для страницыcss стоит писать отдельно и подключать как файл/файлы, для формы будет отдельный шаблон
тут всякие оперативные реакции на действия в браузере требуемые страницей.js тоже стоит писать отдельно и подключать как файл/файлы
- $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` GROUP BY `rs_type` ORDER BY `id` ASC");
+ $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` ORDER BY `id` ASC");
<?php
$all = $ref_system->fetchAll();
$plc = array_filter($all, fn ($fields) => $fields['rs_type'] === 'plc');
$deposit = array_filter($all, fn ($fields) => $fields['rs_type'] === 'deposit');
$offer = array_filter($all, fn ($fields) => $fields['rs_type'] === 'offer');
?>
<?php foreach ([$plc, $deposit, $offer] as $level => $data): ?>
<div class="col-md-4 col-12 mb-lg-0 mb-4">
<div class="fw-bold h5 mb-3">
<?= $level + 1 ?>-й уровень
</div>
<?php foreach($data as $ref) : ?>
<div class="mb-4">
<span class="text-muted fw-semibold"><?=$ref['rs_type']?></span>
<div>
<div class="d-flex align-items-center pt-2">
<div class="progress w-100">
<div class="progress-bar bg-warning" role="progressbar" style="width: 100%;" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="ms-3 fw-bold text-warning"><?=$ref['rs_percent']?>%</span>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
\Bitrix\Main\XmlWriter
, то с его помощью - никак.class AppXmlWriter extends XmlWriter
{
private $file = '';
private $charset = '';
private $tab = 0;
private $f = null;
private $lowercaseTag = false;
private $errors = array();
// конструктор скопирован, т.к. там все private
public function __construct(array $params)
{
if (isset($params['file']))
{
$server = \Bitrix\Main\Application::getInstance()->getContext()->getServer();
$this->file = $server->getDocumentRoot() . trim($params['file']);
// create new file
if (
isset($params['create_file']) &&
$params['create_file'] === true &&
is_writable($this->file)
)
{
unlink($this->file);
}
}
if (isset($params['charset']))
{
$this->charset = trim($params['charset']);
}
else
{
$this->charset = SITE_CHARSET;
}
if (isset($params['lowercase']) && $params['lowercase'] === true)
{
$this->lowercaseTag = true;
}
if (isset($params['tab']))
{
$this->tab = (int)$params['tab'];
}
}
public function prepareAttributes(array $attributes): string
{
$result = '';
if (empty($attributes)) {
return $result;
}
foreach ($attributes as $key => $value) {
$result .= sprintf(' %s="%s"', $key, $value);
}
return $result;
}
public function writeBeginTag($code, array $attributes = [])
{
if (!$this->f) {
return;
}
fwrite($this->f, str_repeat("\t", $this->tab) . '<' . $this->prepareTag($code) . $this->prepareAttributes($attributes) . '>' . PHP_EOL);
$this->tab++;
}
public function writeFullTag($code, $value, array $attributes = [])
{
if (!$this->f) {
return;
}
$code = $this->prepareTag($code);
$codeAttributes = $this->prepareAttributes($attributes);
fwrite($this->f,
str_repeat("\t", $this->tab) .
(
trim($value) == ''
? '<' . $code . $codeAttributes . ' />' . PHP_EOL
: '<' . $code . $codeAttributes . '>' .
$this->prepareValue($value) .
'</' . $code . '>' . PHP_EOL
)
);
}
}
Объекты DateTimeImmutable и DateTime можно сравнивать операторами сравнения.
class Foo
{
public function isGreaterThenNow(): bool
{
return $this->someDate > new DateTime();
}
}
чтобы это не выглядело костылемтогда проверять лучше не в ActiveRecord, а в спецификации какой-нибудь или ответсвенном объекте
.gitignore
/server/
/client/
/db/
git rm -r --cached server
git rm -r --cached client
git rm -r --cached db
git add .
if (YII_ENV_TEST) {
return true;
}
Yii::$app->apiService
# config/test.php
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/web.php'),
[
'id' => 'app-tests',
'components' => [
'apiService' => [
'class' => 'App\Fake\ApiService',
],
],
],
);
return $config;
# tests/integration.suite.yml
class_name: IntegrationTester
modules:
enabled:
- Asserts
- Yii2:
part: [orm, email, fixtures]
configFile: 'config/test.php'
git clone <ссылка на старый>
git remote add copy <ссылка на новый>
git push --all copy
white-space: pre-line
. Соответственно, white-space
можно менять в медиа запросе.<a href="#">Детское игровое и спортивное
оборудование</a>
.goods-cat__labels > a {
white-space: pre-line;
}