- .replace(new RegExp(`\\b${ lastTime }\\b`)
+ .replaceAll(new RegExp(`\\b${ lastTime }\\b`, `g`)
function dataDebug($data, $flag = false)
{
echo '<div class="debug-entry">';
echo '<pre>';
if (!$flag) {
print_r($data);
} else {
var_dump($data);
}
echo '</pre>';
echo '</div>';
echo <<<JS
<script>
if (!window.debug_entries_moved) {
window.debug_entries_moved = true;
const $container = document.createElement(`div`);
$container.classList.add(`mc__debugger`);
[...document.querySelectorAll(`.debug-entry`)].forEach(($entry) => {
$container.appendChild($entry);
});
document.body.appendChild($container);
}
</script>
JS;
}
UPDATE
не выйдет.ON DUPLICATE KEY UPDATE
, кидать в таблицу каждый раз новую строку, а потом в фоне её периодически пылесосить от мусора. select zagolovok from (
select 1 as sort, name as zagolovok from sotrudniki
union
select 2 as sort, nazvanie as zagolovok from transport
order by sort, zagolovok
) as tmp
select * from test_prep_materials where PATH in (
select tpm.PATH
from tests as t
left join test_prep_materials as tpm on tpm.TID = t.ID
group by tpm.PATH
having max(t.YEAR) < 2024 and min(t.YEAR) > 2022
)
span
один раз при запуске скрипта и туда попадает первый span
первого div
.div.addEventListener('click', function(e) {
let span = this.querySelector('span');
set.add(this.textContent);
let arr = [...set];
el1.textContent = arr.join(', ');
sum += +span.textContent;
console.log(span.textContent);
el2.textContent = sum;
})
парсит только первую страницуНаверное, не первую, а последнюю? У вас на каждую итерацию
while
массив найденных элементов затирается и используется потом только данные последней страницы.for i in root:
нужно поправить - эта логика должна выполняться внутри цикла while
.tage = []
нужно из цикла, наоборот, вынести. Ну а лучше вообще эту переменную убрать и писать в файл прямо внутри while
. Как можно это рассчитать?Пишете ТЗ, оцениваете его в часах, умножаете часы на размер часовой ставки. Другого способа оценить разработку чего либо не существует.
Какие сейчас цены на личный кабинет?На сферический личный кабинет в вакууме у
Понятия не имею как с этим работать.Поскольку это даже не JSON, а сериализация средствами PHP, то единственный адекватный способ - получать все записи из БД, десериализовывать и в коде считать что нужно.
An individual tag has a type, represented as a string name, and an optional id, represented as a string or number. It can be represented as a plain string (such ashttps://redux-toolkit.js.org/rtk-query/usage/autom...'Post'
), or an object in the shape{type: string, id?: string|number}
(such as[{type: 'Post', id: 1}]
).
getInvoiceReviewTaskDetails: build.query<InvoiceReviewTaskDetails, number>({
...
providesTags: (response) =>
response ?
[
{ type: TagTypes.VendorInvoiceReview, id: response.id },
{ type: TagTypes.VendorInvoiceReview, id: `vendor-${response.vendor.id}` },
{ type: TagTypes.VendorInvoiceReview, id: `facility-${response.facility.id}` },
] : []
}),
updateInvoiceReviewTask: build.mutation<void, UpdateFacilityInvoiceReviewTaskRequest>({
...
invalidatesTags: (response, error, params) =>
[
{ type: TagTypes.VendorInvoiceReview, id: `vendor-${params.vendor_id}` },
{ type: TagTypes.VendorInvoiceReview, id: `facility-${params.facility_id}` },
]
})
getInvoiceReviewTaskDetails: build.query<InvoiceReviewTaskDetails, number>({
...
providesTags: (response) =>
response ?
[{ type: TagTypes.VendorInvoiceReview, id: `vendor-${response.vendor.id},facility-${response.facility.id}` }] : []
}),
updateInvoiceReviewTask: build.mutation<void, UpdateFacilityInvoiceReviewTaskRequest>({
...
invalidatesTags: (response, error, params) =>
[{ type: TagTypes.VendorInvoiceReview, id: `vendor-${params.vendor_id},facility-${params.facility_id}` }]
})
функционал уже зашит в файлеВ файле может быть (и почти наверняка) зашита часть функционала. А всё самое важное, если разработчик не дурак и задача позволяет, вынесено на недоступный вам сервер.
peer-зависимости - обычно предназначены для подключения особо крупных библиотекКрупность тут ни при чём. Peer-зависимости нужны для реализациии чего-то типа плагинов - они позволяют этому самому плагину сказать "я работают в такой-то библиотеке такой-то версии, но сама эта библиотека в моём коде не используется". Таким образом при установке плагина проверяется, что на одном с ним уровне есть эта библиотека, но в зависимости плагина она не тянется.
Теоретически, мы могли бы отмечать и мелкие библиотеки как peer-зависимости.Peer-зависимости вообще не используются в конечных приложениях, они нужны только для библиотек, которые сами будут распространяться как пакеты. А у таких библиотек не может быть много peer-зависимостей по определению.