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

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

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Многоуровневое логирование: руководство по структурированному и последовательному ведению логов

В статье рассказывается о том, как структурировать и последовательно вести логирование в PHP с помощью библиотеки PECS.

👉 @web_craft | #php
Функция проверки формата строк в PHP

Какая функция проверяет, состоит ли строка из букв и цифр в php?

👉 @web_craft | #php
Как использовать cURL в PHP

В этой статье рассказывается об основах cURL, библиотеки с открытым исходным кодом, используемой для отправки HTTP-запросов с различных языков программирования, включая PHP. Автор показывает, как использовать cURL для получения или отправки данных с веб-сайтов.

👉 @web_craft | #php
Как возвращать многострочный код JavaScript из PHP

Статья посвящена тому, как возвращать многострочный код JavaScript из PHP. Она предоставляет два метода: использование конкатенации строк и использование синтаксиса heredoc.

👉 @web_craft | #php
Вертикальная архитектура срезов

Статья посвящена вертикальной архитектуре срезов (Vertical Slice Architecture), методу разработки программного обеспечения для создания модульных, гибких и удобных в сопровождении приложений. Автор сравнивает ее с традиционной многослойной архитектурой и подчеркивает ее преимущества.

👉 @web_craft | #php
Создание инструмента командной строки с помощью PHP и консоли Symfony

В этой статье рассматривается, как создать простой командный инструмент в PHP с использованием пакета Symfony Console (symfony/console).

👉 @web_craft | #php
Создание поддерживаемых PHP-приложений: чрезмерное или недостаточное проектирование

Статья рассказывает о разнице между излишним и недостаточным проектированием при создании приложений на PHP. Автор объясняет, что оба подхода могут привести к проблемам с поддержкой, расширением и качеством кода, и что оптимальный выбор зависит от контекста и целей проекта. Также даются примеры кода, которые иллюстрируют разные стили проектирования и их последствия.

👉 @web_craft | #php
ИИ для PHP: Автоматизация модульного тестирования с помощью помощника ИИ

Статья рассказывает о том, как можно использовать AI Assistant в PhpStorm для автоматизации написания юнит-тестов для PHP-кода.

👉 @web_craft | #php
Сравнение строк по звучанию в 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
Принцип разделения интерфейса (ISP) с использованием PHP: принцип SOLID

Представьте библиотеку: книги по разным темам аккуратно разложены по полкам. Вы же не будете брать с собой все книги, если вам нужна только одна?

То же самое касается и программирования. Принцип разделения интерфейса (ISP) – это наведение порядка в коде. Каждый класс должен "брать" только те методы, которые ему нужны, а не все подряд.

В статье рассказывается, что такое ISP и зачем он нужен,
демонстрируется пример кода, который нарушает принцип ISP,
и показывается, как правильно делить интерфейсы на более мелкие, специализированные.

👉 @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
Анонимные функции

На собеседовании по 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 более точная: soundex() или metaphone()?

👉 @web_craft | #php
Начало работы с асинхронным PHP с использованием ReactPHP

Статья рассказывает о том, как использовать ReactPHP для создания асинхронных приложений на PHP.

ReactPHP - это библиотека, которая позволяет превратить PHP в нечто подобное Go или Node.js, чтобы задачи могли выполняться асинхронно.

👉 @web_craft | #php
Реализация маршрутизации с использованием атрибутов PHP

Статья рассматривает реализацию маршрутизации с использованием атрибутов PHP. Она поможет вам понять, как настроить маршрутизацию в вашем PHP-приложении, чтобы обеспечить более чистые и SEO-дружественные URL-адреса для пользователей.

👉 @web_craft | #php
Отличие var_export() от var_dump()

Чем var_export() отличается от var_dump()?

👉 @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

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