PHP задачи с собеседований
Kanalga Telegram’da o‘tish
Задачи, тесты и теоретические вопросы по PHP. Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny
Ko'proq ko'rsatish2 905
Obunachilar
-224 soatlar
-17 kunlar
-1330 kunlar
Postlar arxiv
🔵 Научитесь создавать сложные масштабируемые системы на платформе 1С!
В OTUS стартует новый поток онлайн-курса «Архитектор 1С», где вы научитесь проектировать информационные системы, используя продвинутые возможности платформы 1С.
4 месяца обучения и вы сможете:
▫️ Формировать архитектуру окружения 1С,
▫️ Моделировать бизнес-процессы и создавать прототипы разработки
▫️ Проектировать технические проекты в СППР
▫️ Работать с Git, OneScript, Vanessa, SonarCube, Apdex, Grafana
▫️ Устанавливать и настраивать РИБ
А еще узнаете, как организовать работу отдела разработки 1С, какие есть виды документации в 1С и какие организационные мероприятия существуют в 1С.
➡️ Тест по архитектуре 1C. Готовы ли вы к обучению на курсе «Архитектор 1С»: https://clck.ru/3Cs7bu
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru❓ Какие паттерны нужно знать разработчикам? Один из них — паттерн Iterator.
☄️Именно его мы разберем 26 августа в 20:00 мск на открытом уроке, который пройдет в преддверии старта онлайн-курса «Архитектура и шаблоны проектирования» в OTUS.
📚На занятии со старшим разработчиком Андреем Поляковым, вы узнаете:
- Что из себя представляет подход Data Streams
- Как принцип инверсии зависимостей (dependency inversion principle, DIP) используется для получения паттерна Iterator
- Как применяется принцип инверсии зависимостей для получения повторно используемых алгоритмов над коллекциями объектов.
- Почему стоит избавляться от циклов при работе с коллекциями
После вебинара «Паттерн Iterator: от применения принципа DIP до Data Streams» вы сможете продолжить обучение на курсе.
➡️Регистрируйтесь прямо сейчас, чтобы не пропустить занятие: https://clck.ru/3CqtLU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ошибка при отправке event через Pusher : local.ERROR: Pusher error: cURL error 7: Failed to connect to localhost port 8080 after 0 ms:
Отправляю event тестовый на фронт
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class MyEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('my-channel');
}
public function broadcastAs()
{
return 'my-event';
}
}
вот сам event
<?php
namespace App\Http\Controllers;
use App\Events\MyEvent;
use App\Events\TestEvent;
use Illuminate\Http\Request;
class TestEventController extends Controller
{
public function sendTestEvent(Request $request)
{
event(new TestEvent('Привет, это тестовое сообщение!'));
return response()->json(['status' => 'Событие отправлено']);
}
}
контролер
Запускаю потом очереди и в логах дает ошибку
[2024-08-09 15:23:37] local.ERROR: Pusher error: cURL error 7: Failed to connect to localhost port 8080 after 0 ms: Could not connect to server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://localhost:8080/apps/838075/events?auth_key=cnppbxcgb0mhtfhieve4&auth_timestamp=1723217017&auth_version=1.0&body_md5=d32cd63fe1ba7f01b6756da9017f0f0d&auth_signature=1b2c3647055a9eed651c64b351c728d20a6e3d9b64ca07377dc93a900f85d6d4. {"exception":"[object] (Illuminate\\Broadcasting\\BroadcastException(code: 0): Pusher error: cURL error 7: Failed to connect to localhost port 8080 after 0 ms: Could not connect to server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://localhost:8080/apps/838075/events?auth_key=cnppbxcgb0mhtfhieve4&auth_timestamp=1723217017&auth_version=1.0&body_md5=d32cd63fe1ba7f01b6756da9017f0f0d&auth_signature=1b2c3647055a9eed651c64b351c728d20a6e3d9b64ca07377dc93a900f85d6d4. at /Users/ruslantasmetov/pulsbackend/pulsebackend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:164)
[stacktrace]
Может кто сталкивался , использую laravel 11
PHP Телеграм АПИ Получить посты с количеством просмотров
не могу никак найти информацию как получить посты и количество просмотров через PHP
Сейчас публикую посты с помощью CURL:
function sendTelegram($method, $response)
{
$ch = curl_init('https://api.telegram.org/bot' . TOKEN . '/' . $method);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
$resulttg = sendTelegram(
'sendPhoto',
array(
'chat_id' => $telegramchatid,
'caption' => $message,
'photo' => $photofortg,
'parse_mode' => 'HTML',
'reply_markup' => json_encode(array('inline_keyboard' => $keyboardtg))
)
);
тем самым я публикую фото с комментарием методом sendPhoto
не могу найти как обойти канал и просмотреть посты с количеством просмотров.
Запрос MYSQL из цикла в 1 запрос. Как и стоит ли?
Есть код:
for ($i = 0; $i < count($array_tip); $i++) {
$sql = "SELECT * FROM reestr WHERE tip LIKE '%$array_tip[$i]%' ORDER BY date DESC LIMIT 1";
$res = $conn->query($sql);
$numb_rows = $res->num_rows;
if (!$res) {
echo 'Не удалось подключиться к базе планов!';
} else {
if ($numb_rows == '0') {
$dateValueLast = '0';
} else {
while ($row0 = $res->fetch_assoc()) {
$dateValueLast = $row0('date');
}
}
$lastDateTip[] = $dateValueLast;
}
}
Есть 5 типов (отделов), в цикле запрашивается максимальная дата для каждого. Например, для 1 отдела последней датой окажется 10 августа, для 2 отдела - 13 августа и т.п.
Как сделать этот запрос без цикла? Вложенные запросы не поддерживают LIMIT, поэтому запрос выдаёт все записи (MAX(date) не работает). Есть ли смысл объединить этот запрос в 1 для оптимизации и ускорения загрузки?
Не знаете, как эффективно управлять конфигурацией и обеспечивать консенсус данных? Ваши проекты сталкиваются с проблемами масштабируемости и надежности?
Тогда присоединяйтесь к открытому вебинару 21 августа в 20:00 мск, где мы:
1. Рассмотрим основы и архитектуру Apache Zookeeper: алгоритмы обеспечения консенсуса данных (Zookeeper Atomic Broadcast с Paxos)
2. Узнаем, как Zookeeper обеспечивает координацию и синхронизацию в распределенных системах
3. Разберём методы настройки и администрирования Zookeeper
👨💻🛠👨🏻💻 Урок будет полезен разработчикам, DevOps-инженерам, администраторам систем и сетей, архитекторам ПО и всем, кто хочет глубже понять работу Apache Zookeeper.
🔴 Запишитесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CjTwr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Добраться до текущего соединения
Для реализации http-метода CONNECT мне надо переслать все дальнейшие данные этого соединения в другой сокет. Хотел прочитать из php://input, но там пусто, поскольку connect-запрос не имеет тела. Мне надо каким-то образом добраться до tcp-сокета текущего http-запроса и потоково читать данные из него. Как это сделать?
❓Вопрос от пользователя
Не работает AccessControl на самописные роли RBAC в фреймворке YII2
Совсем новичок в yii2, пишу свой первый сайт. Я написал RBAC контроллер, написал нужные роли, правила и разрешения. Возникла проблема на моменте создания поведения для User контроллера: в behaviors() добавил AccessControl и прописал нужные доступы. Однако фильтр не пропускает самописные роли (user, admin). Пожалуйста, подскажите в чём проблема? Спасибо!
Код RBAC контроллера:
class RbacController extends Controller
{
public function actionInit()
{
$authManager = \Yii::$app->authManager;
// Create roles
$guest = $authManager->createRole('guest');
$user = $authManager->createRole('user');
$admin = $authManager->createRole('admin');
// Create simple, based on action{$NAME} permissions
$signin = $authManager->createPermission('/user/signin');
$logout = $authManager->createPermission('/user/logout');
$signUp = $authManager->createPermission('/user/signup');
$index = $authManager->createPermission('/user/index');
$history = $authManager->createPermission('/user/history');
$profile = $authManager->createPermission('/user/profile');
$usersList = $authManager->createPermission('/user/userlist');
// Add permissions in Yii::$app->authManager
$authManager->add($signin);
$authManager->add($logout);
$authManager->add($signUp);
$authManager->add($index);
$authManager->add($history);
$authManager->add($profile);
$authManager->add($usersList);
// Add rule, based on UserExt->group === $user->group
$userGroupRule = new UserGroupRule();
$authManager->add($userGroupRule);
// Add rule "UserGroupRule" in roles
$guest->ruleName = $userGroupRule->name;
$user->ruleName = $userGroupRule->name;
$admin->ruleName = $userGroupRule->name;
// Add roles in Yii::$app->authManager
$authManager->add($guest);
$authManager->add($user);
$authManager->add($admin);
// Add permission-per-role in Yii::$app->authManager
// Guest
$authManager->addChild($guest, $signin);
$authManager->addChild($guest, $signUp);
$authManager->addChild($guest, $index);
// user
$authManager->addChild($user, $profile);
$authManager->addChild($user, $history);
$authManager->addChild($user, $guest);
// Admin
$authManager->addChild($admin, $usersList);
$authManager->addChild($admin, $user);
}
}
Код behaviors() User контроллера
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::class,
'denyCallback' => function() {
if(Yii::$app->user->isGuest)
return $this->redirect('signin');
throw new ForbiddenHttpException('У вас нет доступа к этой странице');
},
'only' => [],
'rules' => [
[
'allow' => true,
'actions' => ['signin', 'signup'],
'roles' => ['?'],
],
[
'allow' => true,
'actions' => ['logout', 'profile', 'history'],
'roles' => ['user'],
],
[
'allow' => true,
'actions' => ['userlist'],
'roles' => ['admin'],
]
],
],
];
}
😊 Ваш интернет-магазин на 1С-Битрикс нуждается в улучшении? Вам надоело вручную передавать данные между системами? Хотите автоматизировать процессы и повысить эффективность работы?
На открытом вебинаре «Интеграция коробочной версии Битрикс 24 и 1С Битрикс» 21 августа в 20:00 мск мы разберём всё, что нужно знать для успешной интеграции.
Вы узнаете:
- как зарегистрировать пользователя в интернет-магазине 1С-Битрикс;
- как формировать и обрабатывать заказы;
- как создать входящий веб-хук и передавать данные о новом покупателе в Битрикс24;
- как создать исходящий веб-хук для передачи данных о сделках и приобретённых товарах обратно на сайт;
- как заполнить каталог товаров данными из CSV-файла с помощью Битрикс API;
- как настроить начальное оформление чертежей.
👉 Регистрируйтесь прямо сейчас и узнайте, как сделать процессы более эффективными и автоматизированными: https://clck.ru/3CVWj6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruНе понимаете, какую роль играет архитектор 1С и почему его участие в проекте так важно?
Хорошие новости! Всего за пару часов вы узнаете:
- как архитектор 1С взаимодействует с командой и заказчиком;
- влияние архитектора 1С на проект;
- можно ли обойтись без него;
- как получить пользу от взаимодействия с архитектором 1С и как ему поддерживать свою ценность;
- как построить процессы команды с участием архитектора и при его отсутствии.
Присоединяйтесь к открытому вебинару 20 августа в 19:00 мск и сделайте этот прыжок в будущее!
Урок будет полезен разработчикам 1С, администраторам баз данных 1С и аналитикам 1С.
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CR5SJ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🎯 Не упустите возможность посетить открытый урок по работе с CMS 1С-Битрикс!
На уроке мы рассмотрим информационные блоки в Битрикс и создадим инфоблок «Каталог товаров».
Вы сможете задать свойства для товаров, а затем заполнить каталог данными из файла CSV, используя API Битрикс.
Также мы обсудим начальную настройку оформления чертежей.
Ждём вас 8 августа в 20:00 20:00 (мск).
➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CMfni
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruСотрудник перешёл по подозрительной ссылке и теперь вся компания страдает от вируса-шифровальщика или вируса-шпиона. Знакомая ситуация?
А теперь представьте, что ваши сотрудники больше никогда не попадают в ловушки фишинга.
Хотите это реализовать? Присоединяйтесь к открытому вебинару 8 августа в 20:00 мск и узнайте, как именно предотвратить киберугрозы! Мы расскажем, почему люди до сих пор переходят по фишинговым ссылкам, почему важно обучать сотрудников кибербезопасности и как простыми словами объяснить им важность защиты данных. Вы также узнаете, как взращивать киберкультуру в вашей компании.
На вебинаре выступят:
- Сергей Терёшин, руководитель курсов «Внедрение и работа в Devsecops» и «ИБ. Professional»
- Алексей Горелкин, CEO компании Phishman™
Регистрируйтесь прямо сейчас: https://clck.ru/3CLXz6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❓Вопрос от пользователя
Удаление товара YITH Wishlist
Возникла проблема в удалении товара из "Избранных" с помощью плагина YITH Wishlist
Файл content-product.php
<?php if(YITH_WCWL()->is_product_in_wishlist($product->get_ID())):?>
<a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'remove_from_wishlist', $product->get_ID(), $base_url ), 'remove_from_wishlist' ) ); ?>"
class="delete_item <?php echo esc_attr( $link_classes ); ?> card__favorite card__favorite_set"
data-item-id="<?php echo esc_attr( $found_item->get_id() ); ?>"
data-product-id="<?php echo esc_attr( $product_id ); ?>"
data-original-product-id="<?php echo esc_attr( $parent_product_id ); ?>"
data-title="<?php echo esc_attr( apply_filters( 'yith_wcwl_add_to_wishlist_title', $label ) ); ?>"
rel="nofollow">
<svg>
<use xlink:href="#icon-favorite"></use>
</svg>
</a>
<?php else: ?>
<a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'add_to_wishlist', $product->get_ID(), $base_url ), 'add_to_wishlist' ) ); ?>"
class="<?php echo esc_attr( $link_classes ); ?> card__favorite yith-wcwl-add-button"
data-product-id="<?php echo esc_attr( $product_id ); ?>"
data-product-type="<?php echo esc_attr( $product_type ); ?>"
data-original-product-id="<?php echo esc_attr( $parent_product_id ); ?>"
data-title="<?php echo esc_attr( apply_filters( 'yith_wcwl_add_to_wishlist_title', $label ) ); ?>"
rel="nofollow">
<svg>
<use xlink:href="#icon-favorite"></use>
</svg>
</a>
<?php endif; ?>
Ругается на $found_item->get_id(), так как она не определена. Как ее получить? Спасибо!
PHP задачи с собеседований🎯 Тест на знание PHP+Symfony 🎯
📚 Пройди тест и получи доступ к 22 открытым урокам.
🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Symfony Framework» от OTUS необходимо пройти входное тестирование: ответить на 20 вопросов и уложиться в тайминг.
Этот курс идеально подходит для любых PHP-разработчиков, стремящихся поднять свой профессиональный уровень до Middle+ или Senior+ и работать в крупных проектах.
➡️ ПРОЙТИ ТЕСТ: https://clck.ru/3CG4Dn
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🤘 Пройди хардкорный тест по JavaScript+Angular
✔️ Ответь на 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Angular Developer".
⛔️ТЕСТ СМОГЛИ ПРОЙТИ ТОЛЬКО 40% УЧАСТНИКОВ
⏰ Время прохождения теста ограничено 25 минут
✍️ПРОЙТИ ТЕСТ: https://clck.ru/3CFTsP
💣 Пройдете тест и получите:
✔️ Живое общение с экспертами
✔️ Лучшие открытые уроки прошлых наборов курса
✔️ Продвинутые темы и практика на «боевых» задачах уровня Middle+
✔️ Скидку на прохождение онлайн курса «Angular Developer»
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
😄 Создание и настройка каталога товаров в CMS 1С-Битрикс
Ждем вас на открытом уроке, где мы:
- рассмотрим информационные блоки в Битрикс;
- создадим и настроим инфоблок «каталог товаров»;
- создадим свойства для товаров;
- заполним каталог товаров данными из CSV-файла, используя Битрикс API;
- разберем начальную настройку оформления чертежей.
Встречаемся 8 августа в 20:00 мск.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CEyzz
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.rularavel ui auth login перенаправляет на другую страницу после входа и обратно
Мой проект лежит на гитхабе. Я его скачиваю на другую машину. Выполняю composer install, проект дополнен необходимыми файлами, запускаю php artisan serve.
На странице /login после входа (испльзуется стандартный auth/ui) должен перенаправлять на /home, но после перенаправления, судя по Inspect из хрома, он снова возвращается на страницу /login.
Идет login 302, home 302 и возврат на login с 200. В чем может быть дело?
При каждом обновлении страницы обновляется и сессия, может в этом дело. В настройках стоит время сессии 120, сессия использует файловую систему.
Laravel 10.29
🦾 Создание и настройка каталога товаров в CMS 1С-Битрикс
Ждем вас на открытом уроке, где мы:
- рассмотрим информационные блоки в Битрикс;
- создадим и настроим инфоблок «каталог товаров»;
- создадим свойства для товаров;
- заполним каталог товаров данными из CSV-файла, используя Битрикс API;
- разберем начальную настройку оформления чертежей.
Встречаемся 8 августа в 20:00 мск.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CBZqg
🎫 Начните обучение со скидкой в 10%, действует до конца июля.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru