Защита чувствительных данных в PHP
Как работает
При использовании этого атрибута, PHP скрывает значение параметра в сообщениях об ошибках и логах, заменяя его на
Пример использования:
В этом примере, если аутентификация не удастся, в логе вместо фактического значения пароля будет отображено
👉 @web_craft | #php
sensitive_parameter
— это атрибут, позволяющий пометить параметры функций и методов как чувствительные, чтобы исключить их из логов и трейсбеков.Как работает
sensitive_parameter
:При использовании этого атрибута, PHP скрывает значение параметра в сообщениях об ошибках и логах, заменяя его на
***
. Это помогает предотвратить утечки конфиденциальной информации, такой как пароли или токены.Пример использования:
class UserAuthenticator {
public function authenticate(
#[\SensitiveParameter] string $password
) {
// Логика аутентификации
if ($password !== 'secret') {
throw new \Exception("Authentication failed");
}
}
}
try {
(new UserAuthenticator())->authenticate('wrong_password');
} catch (\Exception $e) {
error_log($e->getMessage());
error_log($e->getTraceAsString());
}
В этом примере, если аутентификация не удастся, в логе вместо фактического значения пароля будет отображено
***
. 👉 @web_craft | #php
Создание докер-образов PHP с помощью Wolfi-OS
Статья об улучшении создания Docker-образов для PHP с использованием Wolfi-OS. В ней сравниваются традиционные методы с использованием официального образа Docker для PHP и установкой расширений вручную, с подходом, который использует Wolfi-OS. Это позволяет ускорить процесс сборки, обеспечивает большую безопасность и предлагает сборки с предварительно скомпилированными пакетами. Wolfi-OS предназначен специально для контейнеров, поддерживает создание образов для разных архитектур и имеет улучшенную систему управления пакетами.
👉 @web_craft | #php
Статья об улучшении создания Docker-образов для PHP с использованием Wolfi-OS. В ней сравниваются традиционные методы с использованием официального образа Docker для PHP и установкой расширений вручную, с подходом, который использует Wolfi-OS. Это позволяет ускорить процесс сборки, обеспечивает большую безопасность и предлагает сборки с предварительно скомпилированными пакетами. Wolfi-OS предназначен специально для контейнеров, поддерживает создание образов для разных архитектур и имеет улучшенную систему управления пакетами.
👉 @web_craft | #php
Работа с сигналами в PHP
Какая функция позволяет скрипту прерываться и немедленно обрабатывать сигналы в любом месте выполнения?
Если забыли, то вернитесь к посту от20.05.2024 .
👉 @web_craft | #php
Какая функция позволяет скрипту прерываться и немедленно обрабатывать сигналы в любом месте выполнения?
Если забыли, то вернитесь к посту от
👉 @web_craft | #php
Получение всех переменных в текущей области видимости PHP
Функция
Пример использования:
Результат:
👉 @web_craft | #php
Функция
get_defined_vars()
в PHP возвращает ассоциативный массив всех определенных переменных в текущей области видимости. Ключи массива – это имена переменных, а значения – их содержимое. Функция возвращает как пользовательские переменные, так и суперглобальные массивы (например, $_GET
, $_POST
, $_SERVER
).Пример использования:
$name = "Alice";
$age = 30;
$all_vars = get_defined_vars();
print_r($all_vars);
Результат:
Array
(
[name] => Alice
[age] => 30
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)
👉 @web_craft | #php
Работа атрибута sensitive_parameter
Что делает PHP с параметрами, помеченными атрибутом
Если забыли, то вернитесь к посту от03.06.2024 .
👉 @web_craft | #php
Что делает PHP с параметрами, помеченными атрибутом
sensitive_parameter
, в сообщениях об ошибках и логах?Если забыли, то вернитесь к посту от
👉 @web_craft | #php
Проверка требований платформы с помощью Composer
Эта команда помогает избежать проблем при развертывании, быстро определить отсутствующие или несовместимые версии PHP и расширений, а также автоматизировать проверки в CI/CD, обеспечивая стабильность и корректную работу проекта.
Параметры:
Пример использования:
👉 @web_craft | #php
composer check-platform-reqs
— команда, проверяющая соответствие версий PHP и расширений требованиям проекта. Она анализирует зависимости проекта и сверяет текущие версии с минимальными требованиями из файла composer.json
, выводя предупреждения при несоответствии.Эта команда помогает избежать проблем при развертывании, быстро определить отсутствующие или несовместимые версии PHP и расширений, а также автоматизировать проверки в CI/CD, обеспечивая стабильность и корректную работу проекта.
Параметры:
--ignore-platform-reqs
: указывает Composer игнорировать все платформные требования.--ignore-platform-req <requirement>
: указывает Composer игнорировать конкретное платформное требование.--strict
: указывает Composer выводить сообщение об ошибке, если не все платформные требования выполнены.Пример использования:
composer check-platform-reqs
👉 @web_craft | #php
Краткое руководство по PHP-генераторам
Статья объясняет, как использовать генераторы в PHP для оптимизации использования памяти. Описываются основы работы генераторов, их преимущества при обработке больших объемов данных и как они возвращают значения по одному вместо целых массивов. Приводятся примеры, сравнивающие традиционные методы возврата массивов с генераторами, и обсуждаются типичные ошибки, такие как продолжение выполнения кода после
👉 @web_craft | #php
Статья объясняет, как использовать генераторы в PHP для оптимизации использования памяти. Описываются основы работы генераторов, их преимущества при обработке больших объемов данных и как они возвращают значения по одному вместо целых массивов. Приводятся примеры, сравнивающие традиционные методы возврата массивов с генераторами, и обсуждаются типичные ошибки, такие как продолжение выполнения кода после
yield
.👉 @web_craft | #php
Работа функции get_defined_vars()
Что возвращает функция
Если забыли, то вернитесь к посту от10.06.2024 .
👉 @web_craft | #php
Что возвращает функция
get_defined_vars()
в PHP?Если забыли, то вернитесь к посту от
👉 @web_craft | #php
Краткое руководство по PHP-генераторам
Статья является вводным руководством по PHP-генераторам, которые оптимизируют использование памяти, возвращая значения по одному с помощью
👉 @web_craft | #php
Статья является вводным руководством по PHP-генераторам, которые оптимизируют использование памяти, возвращая значения по одному с помощью
yield
, а не загружая все данные сразу. Приводятся примеры базового использования генераторов и их преимуществ при работе с большими объемами данных. Рассматриваются практические примеры, такие как загрузка страниц из веб-списков, и подчеркиваются важные моменты, например, то, что yield
не останавливает выполнение кода.👉 @web_craft | #php
Работа команды composer check-platform-reqs
Что происходит, если команда
Забыли? Вернитесь к посту от23.06.2024 .
👉 @web_craft | #php
Что происходит, если команда
composer check-platform-reqs
обнаруживает несоответствие?Забыли? Вернитесь к посту от
👉 @web_craft | #php
Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки
Статья описывает, как профилировать PHP (Laravel) приложения с помощью xhprof для выявления узких мест (bottlenecks). Автор объясняет, что такое профилировщик и как использовать инструменты xhprof, Buggregator и другие для анализа и оптимизации производительности кода.
👉 @web_craft | #php
Статья описывает, как профилировать PHP (Laravel) приложения с помощью xhprof для выявления узких мест (bottlenecks). Автор объясняет, что такое профилировщик и как использовать инструменты xhprof, Buggregator и другие для анализа и оптимизации производительности кода.
👉 @web_craft | #php
Подсчет связанных моделей в PHP с помощью метода withCount в Eloquent
Метод
Чтобы использовать
В этом примере для каждой записи
Метод
В этом примере подсчитываются все комментарии и только те, которые находятся в статусе "pending".
👉 @WebCraft | #php
Метод
withCount
в Eloquent позволяет подсчитывать количество связанных моделей в PHP. Чтобы использовать
withCount
, вызовите его на запросе модели, передав имя отношения:use App\Models\Post;
$posts = Post::withCount('comments')->get();
foreach ($posts as $post) {
echo $post->title . ' имеет ' . $post->comments_count . ' комментариев.';
}
В этом примере для каждой записи
post
будет подсчитано количество связанных comments
, и результат будет сохранен в атрибуте comments_count
.Метод
withCount
также поддерживает подсчет нескольких отношений и применение условий к подсчету:$posts = Post::withCount([
'comments',
'comments as pending_comments_count' => function ($query) {
$query->where('status', 'pending');
}
])->get();
В этом примере подсчитываются все комментарии и только те, которые находятся в статусе "pending".
👉 @WebCraft | #php
Магические константы в PHP
Статья описывает девять констант в PHP, которые определяются на этапе компиляции и могут изменяться в зависимости от их использования в коде. Примеры показывают, как и когда использовать каждую из констант для улучшения читаемости и функциональности кода.
👉 @web_craft | #php
Статья описывает девять констант в PHP, которые определяются на этапе компиляции и могут изменяться в зависимости от их использования в коде. Примеры показывают, как и когда использовать каждую из констант для улучшения читаемости и функциональности кода.
👉 @web_craft | #php
Работа с withCount в PHP
Что позволяет делать метод
Если забыли, то вернитесь к посту от29.07.2024 .
👉 @WebCraft | #php
Что позволяет делать метод
withCount
в Eloquent?Если забыли, то вернитесь к посту от
👉 @WebCraft | #php
Как программно перевести контент
Статья описывает, как использовать искусственный интеллект и библиотеки Transformers для программного перевода контента. Автор объясняет, как применять модели трансформеров, такие как BERT и GPT, для автоматического перевода текстов с одного языка на другой. В статье рассмотрены примеры использования PHP для интеграции с этими моделями, а также объясняется процесс настройки и использования API для перевода.
👉 @web_craft | #php
Статья описывает, как использовать искусственный интеллект и библиотеки Transformers для программного перевода контента. Автор объясняет, как применять модели трансформеров, такие как BERT и GPT, для автоматического перевода текстов с одного языка на другой. В статье рассмотрены примеры использования PHP для интеграции с этими моделями, а также объясняется процесс настройки и использования API для перевода.
👉 @web_craft | #php
Использование assert() для улучшения отладки в PHP
Функция
В этом примере, если значение
Настройка
Теперь, если условие окажется ложным, будет выброшено исключение
👉 @web_craft | #php
Функция
assert()
в PHP — это инструмент для тестирования и отладки кода во время разработки. Она проверяет, что переданное условие истинно. assert()
проверяет выражение, и если оно ложно, возникает ошибка. Например:$age = 18;
assert($age >= 18, "Возраст должен быть 18 или старше");
В этом примере, если значение
$age
меньше 18, генерируется ошибка с сообщением.Настройка
assert()
для работы с исключениями:ini_set('assert.exception', 1);
try {
assert($age < 18, "Возраст должен быть меньше 18");
} catch (AssertionError $e) {
echo $e->getMessage();
}
Теперь, если условие окажется ложным, будет выброшено исключение
AssertionError
.👉 @web_craft | #php
Реакция на ложные выражения в assert()
Что произойдет, если выражение в
Если забыли, то вернитесь к посту от07.10.2024 .
👉 @web_craft | #php
Что произойдет, если выражение в
assert()
окажется неверным?Если забыли, то вернитесь к посту от
👉 @web_craft | #php