WebCraft - ремесло веб разработки
6.49K subscribers
1.69K photos
254 videos
2 files
223 links
Интересуешься php , js , css , html , Laravel , Vue ? Этот канал для тебя

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Автоматизация загрузки классов

spl_autoload_register() - это функция в PHP, которая используется для регистрации пользовательского автозагрузчика классов. Он позволяет загружать классы по мере их использования, что делает код более организованным и облегчает его поддержку.

Как работает spl_autoload_register():

Функция регистрирует автозагрузчики, вызываемые при попытке загрузки класса, который еще не определен в скрипте. При вызове spl_autoload_register() PHP автоматически передает имя неопределенного класса в зарегистрированные функции автозагрузки, обеспечивая автоматическое подключение классов без ручного включения файлов с их определением.

Пример использования:
function myAutoloader($className) {
$className = str_replace('\\', DIRECTORY_SEPARATOR, $className);
$fileName = $className . '.php';
if (file_exists($fileName)) {
require_once $fileName;
}
}

spl_autoload_register('myAutoloader');

$object = new My\Namespace\MyClass();


👉 @web_craft | #php
Управление асинхронной обработкой сигналов в PHP

pcntl_async_signals - это функция PHP, предназначенная для управления асинхронной обработкой сигналов в PHP-скриптах.

Как работает:
pcntl_async_signals(true) позволяет включить асинхронную обработку сигналов. После её активации все сигналы, на которые установлены обработчики с помощью pcntl_signal(), будут автоматически обрабатываться без необходимости вызывать pcntl_signal_dispatch(). Так как сигналы обрабатываются сразу же при их поступлении, без задержек.

Пример:
<?php

pcntl_async_signals(true); // Включаем асинхронную обработку сигналов

pcntl_signal(SIGINT, function($signal) {
echo "Получен сигнал SIGINT!\n";
exit();
});

while (true) {
echo "Работает...\n";
sleep(1);
}


В этом примере сигнал SIGINT (Ctrl+C) будет обрабатываться асинхронно, вызывая функцию обратного вызова, которая выводит сообщение и завершает работу скрипта.

👉 @web_craft | #php
Механизм загрузки классов в PHP

Какой механизм используется для загрузки классов с помощью функции spl_autoload_register()?

Если забыли, то в посте от 29.04.2024 мы разбирали этот функционал.

👉 @web_craft | #php
Асинхронная обработка сигналов в PHP

Функция pcntl_async_signals в PHP используется для управления асинхронной обработкой сигналов в процессе.

Как работает:

pcntl_async_signals(true) позволяет скрипту прерываться и немедленно обрабатывать сигналы, когда они поступают, независимо от того, в какой точке выполнения находится скрипт.

Пример использования:

// Включить асинхронную обработку
pcntl_async_signals(true);

function my_signal_handler($signo) {
echo "Сигнал $signo получен!\n";
}

// Назначить обработчик сигнала SIGUSR1
pcntl_signal(SIGUSR1, 'my_signal_handler');

// Сгенерировать сигнал SIGUSR1
pcntl_kill(getmypid(), SIGUSR1);

// ... остальная часть кода ...


👉 @web_craft | #php
Финализация классов

В статье говорится об автоматизации процесса финализации классов в PHP. В ней обсуждаются преимущества финализации классов для статического анализа и правил Rector. В статье также подробно описан инструмент под названием Swiss Knife, который можно использовать для безопасной финализации классов в проекте.

👉 @web_craft | #php