Многоуровневое логирование: руководство по структурированному и последовательному ведению логов
В статье рассказывается о том, как структурировать и последовательно вести логирование в PHP с помощью библиотеки PECS.
👉 @web_craft | #php
В статье рассказывается о том, как структурировать и последовательно вести логирование в PHP с помощью библиотеки PECS.
👉 @web_craft | #php
Функция проверки формата строк в PHP
Какая функция проверяет, состоит ли строка из букв и цифр в php?
👉 @web_craft | #php
Какая функция проверяет, состоит ли строка из букв и цифр в php?
👉 @web_craft | #php
Как использовать cURL в PHP
В этой статье рассказывается об основах cURL, библиотеки с открытым исходным кодом, используемой для отправки HTTP-запросов с различных языков программирования, включая PHP. Автор показывает, как использовать cURL для получения или отправки данных с веб-сайтов.
👉 @web_craft | #php
В этой статье рассказывается об основах cURL, библиотеки с открытым исходным кодом, используемой для отправки HTTP-запросов с различных языков программирования, включая PHP. Автор показывает, как использовать cURL для получения или отправки данных с веб-сайтов.
👉 @web_craft | #php
Как возвращать многострочный код JavaScript из PHP
Статья посвящена тому, как возвращать многострочный код JavaScript из PHP. Она предоставляет два метода: использование конкатенации строк и использование синтаксиса heredoc.
👉 @web_craft | #php
Статья посвящена тому, как возвращать многострочный код JavaScript из PHP. Она предоставляет два метода: использование конкатенации строк и использование синтаксиса heredoc.
👉 @web_craft | #php
Вертикальная архитектура срезов
Статья посвящена вертикальной архитектуре срезов (Vertical Slice Architecture), методу разработки программного обеспечения для создания модульных, гибких и удобных в сопровождении приложений. Автор сравнивает ее с традиционной многослойной архитектурой и подчеркивает ее преимущества.
👉 @web_craft | #php
Статья посвящена вертикальной архитектуре срезов (Vertical Slice Architecture), методу разработки программного обеспечения для создания модульных, гибких и удобных в сопровождении приложений. Автор сравнивает ее с традиционной многослойной архитектурой и подчеркивает ее преимущества.
👉 @web_craft | #php
Создание инструмента командной строки с помощью PHP и консоли Symfony
В этой статье рассматривается, как создать простой командный инструмент в PHP с использованием пакета Symfony Console (symfony/console).
👉 @web_craft | #php
В этой статье рассматривается, как создать простой командный инструмент в PHP с использованием пакета Symfony Console (symfony/console).
👉 @web_craft | #php
Создание поддерживаемых PHP-приложений: чрезмерное или недостаточное проектирование
Статья рассказывает о разнице между излишним и недостаточным проектированием при создании приложений на PHP. Автор объясняет, что оба подхода могут привести к проблемам с поддержкой, расширением и качеством кода, и что оптимальный выбор зависит от контекста и целей проекта. Также даются примеры кода, которые иллюстрируют разные стили проектирования и их последствия.
👉 @web_craft | #php
Статья рассказывает о разнице между излишним и недостаточным проектированием при создании приложений на PHP. Автор объясняет, что оба подхода могут привести к проблемам с поддержкой, расширением и качеством кода, и что оптимальный выбор зависит от контекста и целей проекта. Также даются примеры кода, которые иллюстрируют разные стили проектирования и их последствия.
👉 @web_craft | #php
ИИ для PHP: Автоматизация модульного тестирования с помощью помощника ИИ
Статья рассказывает о том, как можно использовать AI Assistant в PhpStorm для автоматизации написания юнит-тестов для PHP-кода.
👉 @web_craft | #php
Статья рассказывает о том, как можно использовать AI Assistant в PhpStorm для автоматизации написания юнит-тестов для PHP-кода.
👉 @web_craft | #php
Сравнение строк по звучанию в PHP
Пример:
👉 @web_craft | #php
Soundex()
и metaphone()
- это функции PHP, которые используются для сравнения строк по звучанию, а не по орфографии. Soundex()
преобразует строку в 4-символьный код, где первый символ - это первая буква исходной строки, а остальные символы - это цифры, представляющие группы похожих по звучанию согласных. Гласные, пробелы и другие символы игнорируются.Metaphone()
работает похоже, но более точно, чем soundex()
. Он учитывает больше правил произношения английского языка. Пример:
echo soundex("Euler") . " == " . soundex("Ellery") . "n"; // E460
echo soundex("Gauss") . " == " . soundex("Ghosh") . "n"; // G200
echo metaphone("programming") . "n"; // PRKRMNK
echo metaphone("programmer") . "n"; // PRKRMR
👉 @web_craft | #php
DTO vs VO в PHP
Статья рассматривает различия между DTO (Data Transfer Object) и VO (Value Object) в контексте PHP.
👉 @web_craft | #php
Статья рассматривает различия между DTO (Data Transfer Object) и VO (Value Object) в контексте PHP.
👉 @web_craft | #php
Принцип разделения интерфейса (ISP) с использованием PHP: принцип SOLID
Представьте библиотеку: книги по разным темам аккуратно разложены по полкам. Вы же не будете брать с собой все книги, если вам нужна только одна?
То же самое касается и программирования. Принцип разделения интерфейса (ISP) – это наведение порядка в коде. Каждый класс должен "брать" только те методы, которые ему нужны, а не все подряд.
В статье рассказывается, что такое ISP и зачем он нужен,
демонстрируется пример кода, который нарушает принцип ISP,
и показывается, как правильно делить интерфейсы на более мелкие, специализированные.
👉 @web_craft | #php
Представьте библиотеку: книги по разным темам аккуратно разложены по полкам. Вы же не будете брать с собой все книги, если вам нужна только одна?
То же самое касается и программирования. Принцип разделения интерфейса (ISP) – это наведение порядка в коде. Каждый класс должен "брать" только те методы, которые ему нужны, а не все подряд.
В статье рассказывается, что такое ISP и зачем он нужен,
демонстрируется пример кода, который нарушает принцип ISP,
и показывается, как правильно делить интерфейсы на более мелкие, специализированные.
👉 @web_craft | #php
Структурированный вывод информации о переменных
Функция
Синтаксис:
Параметры:
Пример:
👉 @web_craft | #php
Функция
var_export()
используется для вывода или возвращения структурированной информации о переменной. Она похожа на var_dump()
, но с одним отличием: возвращаемое значение является валидным PHP-кодом.Синтаксис:
var_export($var, $return = false)
.Параметры:
$var
: переменная, для которой нужно получить информацию.$return
: если установлено в true
, функция возвращает результат вместо его вывода.Пример:
$var = array(
"name" => "John Doe",
"age" => 30,
"city" => "New York"
);
$exported = var_export($var, true);
echo $exported; // Выводит валидный PHP-код, представляющий массив $var
👉 @web_craft | #php
Никогда не используйте функцию empty в PHP
Статья рассказывает о том, что использование функции empty в PHP может привести к непредвиденным результатам. Автор статьи предлагает использовать другие методы для проверки значений переменных.
👉 @web_craft | #php
Статья рассказывает о том, что использование функции empty в PHP может привести к непредвиденным результатам. Автор статьи предлагает использовать другие методы для проверки значений переменных.
👉 @web_craft | #php
Анонимные функции
На собеседовании по PHP нередко затрагивают тему про анонимные функции. Давайте разберемся, что мы точно должны знать.
- Что такое анонимная функция?
Это функция без имени. Она определяется с помощью ключевого слова
Пример:
-Где используются анонимные функции?
В переменных:
В качестве аргументов:
В качестве обратных вызовов:
- В чем заключаются преимущества анонимных функций?
Компактность: Не нужно придумывать имена.
Гибкость:Легко встраиваются в код.
Многогранность: Могут быть переменными, аргументами или возвращаемыми значениями.
👉 @web_craft | #php
На собеседовании по PHP нередко затрагивают тему про анонимные функции. Давайте разберемся, что мы точно должны знать.
- Что такое анонимная функция?
Это функция без имени. Она определяется с помощью ключевого слова
function
, за которым следуют параметры и тело функции.Пример:
$sum = function($a, $b) {
return $a + $b;
};
echo $sum(2, 3); // 5
-Где используются анонимные функции?
В переменных:
$filter = function($item) {
return $item > 10;
};
$filtered = array_filter([1, 2, 3, 12, 20], $filter);
print_r($filtered); // [12, 20]
В качестве аргументов:
function apply($func, $value) {
return $func($value);
}
echo apply($sum, 5); // 5
В качестве обратных вызовов:
usort($items, function($a, $b) {
return $a['name'] <=> $b['name'];
});
- В чем заключаются преимущества анонимных функций?
Компактность: Не нужно придумывать имена.
Гибкость:Легко встраиваются в код.
Многогранность: Могут быть переменными, аргументами или возвращаемыми значениями.
👉 @web_craft | #php
Какая функция точнее при проверке звучания строк PHP?
Какая функция PHP более точная:
👉 @web_craft | #php
Какая функция PHP более точная:
soundex()
или metaphone()
?👉 @web_craft | #php
Начало работы с асинхронным PHP с использованием ReactPHP
Статья рассказывает о том, как использовать ReactPHP для создания асинхронных приложений на PHP.
ReactPHP - это библиотека, которая позволяет превратить PHP в нечто подобное Go или Node.js, чтобы задачи могли выполняться асинхронно.
👉 @web_craft | #php
Статья рассказывает о том, как использовать ReactPHP для создания асинхронных приложений на PHP.
ReactPHP - это библиотека, которая позволяет превратить PHP в нечто подобное Go или Node.js, чтобы задачи могли выполняться асинхронно.
👉 @web_craft | #php
Реализация маршрутизации с использованием атрибутов PHP
Статья рассматривает реализацию маршрутизации с использованием атрибутов PHP. Она поможет вам понять, как настроить маршрутизацию в вашем PHP-приложении, чтобы обеспечить более чистые и SEO-дружественные URL-адреса для пользователей.
👉 @web_craft | #php
Статья рассматривает реализацию маршрутизации с использованием атрибутов PHP. Она поможет вам понять, как настроить маршрутизацию в вашем PHP-приложении, чтобы обеспечить более чистые и SEO-дружественные URL-адреса для пользователей.
👉 @web_craft | #php
Автоматизация загрузки классов
Как работает
Функция регистрирует автозагрузчики, вызываемые при попытке загрузки класса, который еще не определен в скрипте. При вызове
Пример использования:
👉 @web_craft | #php
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
Как работает:
Пример:
В этом примере сигнал
👉 @web_craft | #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