Так и думал, что вариантов особо нет. Было бы круто, если бы была какая-нибудь библиотека на стороне клиента для изменения видюх.А какой смысл? Во первых вы все равно скачиваете большой файл на клиент, то есть по трафику и скорости загрузки ничего не выигрываете, во вторых конвертация ВСЕГДА будет более ресурсоемким процессом нежели просто воспроизведение, соответственно и по ресурсам только хуже делаете.
500 от Apache выглядит иначеСправедливости ради, это может быть кастомная брэндированая страничка. В остальном согласен, 90% что это ошибка кода.
Через какое то время решил обновить проект и сделать его на react + TS. При попытке загрузить его на хостинг у меня нечего не получалось и мне сказали то что нужно купить VPS сервер и на него загружать файлы проекта.Похоже на налюбилово. Если сайт действительно только на реакте и не требует бэкенда, то разницы какой там хостинг вообще нет, так как весь код по сути выполняется на клиенте. Исключение - ssr, для которого нужна нода.
и если в них изменения писать то сайт работает, но МОЙ index файл находится во ВНУТРЕННЕЙ папке public. Что в таком роде нужно делать?Опять же, если все как вы описываете, достаточно перенести все из папки паблик на уровень выше, так как паблик на старом хостинге был корневой папкой сайта. Как вариант, если у вас действительно vds, настроить корневую папку вручную, указав ее в конфиге апача/нжинкса.
но и уникальный код, выданный ему заранее.А без этого кода ВООБЩЕ никто не может зарегистрироваться?
Администратор сайта должен иметь возможность предварительно создавать множество страниц аккаунтов,Мне кажется, или если у вас будет хоть какакя-то популярность сервиса, администратор слегка прифигеет генерировать аккаунты пользователей. Или они у вас будут рандомными? По какому принципу они создаются/генерируются? Типа, имя пользователя: "Hfbh3h&03qqw"? Или как-то руками? Вообще конечно даже исходя из всех отрывочных описаний нифига не понятно.
Смысл в том, чтобы администратор смог передать пользователю код и ссылку на его будущий аккунт.То есть у пользователей есть какая-то возможность с администрацией взаимодействовать до регистрации?
Заранее неизвестно количество слов в запросе и AND LIKE соответственното есть конструкция с одним ифом или циклом для вас выше возможностей реализации? Если слов больше 1, приплюсовать к поисковому запросу " AND name LIKE ? " столько раз, сколько слов всего, минус один?
Не нарушу ли я таким образом авторское право, построив свой сайт поверх ютуба?Ембед как бы для того и придуман, чтобы втыкать свое видео (с рекламой в том числе) на других платформах.
PHP+SQL не хочу ввиду необходимости установки.Ни то ни другое установки в общем случае не требует. ПХП можно тупо запускать из папочки, а кроме того он сразу же искаропки умеет вебсервер. В качестве скуеля можно взять sqlite, который тоже не требует установки.
желательно чтобы работало и на ТВ.Тут уже сложнее, нужно будет все же что-то ставить, например смотреть тут.
без библиотек?Библиотеки общего назначения конечно используются, всякие надстройки над курлом или пупитир какой-нибудь, но сам парсинг в большинстве случаев слишком разный для разных источников. Где-то нельзя по тегам отделить текст от разметки, где-то реклама повторяет блоки текста по структуре (а их надо отсечь), где-то стоит клоудфлэйр и надо еще и с запросом что-то мудрить, где-то вообще все строится динамически на вью или реакт и саму страничку парсить абсолютно нет смысла... Короче зоопарк технологий порождает практически бесконечное количество вариаций, так что становится проще сделать что-то руками, чем искать универсальное решение.
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId(),'crmCompanyID'=>$companyID]);Магия вне Хогвардса хреново работает, так что остается полагаться на логику. Так как мы здесь видим переменную, а не значение, можно предположить что там не то значение, которое вы ожидаете. Поможет dd() или var_dump().
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId()],['crmCompanyID'=>$companyID]);
куда писать-то?ну вот же, ваше же
файлик с парами ключ-значение может быть зашифрован через aes-128-gcm и первый $mem-set() будет через ввод пароля от этого шифра.будет не пароль от шифра, а пароль от бд или чеготамеще...
ахахах)))) давайте добавим ещё десяток других обращений к диску)))У вас ВСЕ практически обращается к диску: код на диске, дб на диске. Еще 1 файл погоды не делает, кроме того все часточитаемые файлы выносятся в память средствами ОС. Чтение файла с диска - последняя из ваших проблем. Ну или давайте для оптимизации весь код засунем в мемкэш?
с $_ENV что-то не так, раз его выпилили в дефолтеДа, с ним не так то, что это глобальная переменная, от которых стараются уйти, повышая качество кода и контроль памяти. Например при включенном он в обязательном порядке читает содержимое (что нужно далеко не всегда), а функция делает это по запросу. Для этого и используют геттеры.
есть подозрение, что getenv() и $_ENV не одно и тоже.нет. обращение к переменной и геттер - разные вещи.
иначе зачем иметь два разных способа по написанию.Вынос данных в область памяти переменных и чтение файла через функцию для вас одно и то же?
файлик с парами ключ-значение может быть зашифрован через aes-128-gcm и первый $mem-set() будет через ввод пароля от этого шифра.то есть после первого рестарта сервера все поднимать руками, понятно... Возникает вопрос зачем пароль, шифрование и вот это все, если это можно так же руками все вводить при старте? Ну и естественно при каждом ребуте снова... Опять же, возвращаемся к проблеме бумажки, если там где вы хранили проект не безопасно, то и пароли/ключи абсолютно так же могут спи... онерить "отдельно".
(import) с каждой итерации возрастаетВозможно по тому что у вас код... странный?
$leads = []; //тут массив пустой
try {
$leads[] = $this->apiClient->leads()->get($filter, [LeadModel::CONTACTS]);
//в нулевой элемент попадает что? Массив лидов? Коллекция?
AmoLeadModel::import($leads,$this->crmCompanyID,$constants);
// Что за AmoLeadModel? Что делает импорт из нее?
$i = 2;
//разбивка по страницам
while ($leads[0]->getNextPageLink() != null) {
$filter->setPage($i);
$leads[] = $this->apiClient->leads()->get($filter, [LeadModel::CONTACTS]);
//тут мы на КАЖДОЙ итерации добавляем массив(?)
//и с каждой итерацией $leads растет...
TestLeadModel::import($leads,$this->crmCompanyID,$constants);
//а тут мы его целиком прогоняем, СНОВА проверяя и те что были
//в предыдущих итерациях, и новые... Естественно время растет линейно
//И почему выше AmoLeadModel, а тут TestLeadModel?
$i++;
}
} catch (AmoCRMApiNoContentException $exception) {
Log::error(__METHOD__ . ' setLead:' . $exception->getMessage());
}
ну у них другая задачаЗадача - возможно, но задание у них явно другое, а на задачу они давно забили.
но вообще правильный вариант - это смена чиновников, которые не справляются со своими обязаностями. тот же РКН очевидно что не справляетсяОни как раз справляются, просто у них задача обратная - запретить, а не обходить )) Тут выше по протоколу менять нужно, тех кто управляет этим слоем одноклеточных ))