TGViewer
Channel Public Channel
PHP Portal | Программирование

PHP Portal | Программирование

@phpgx

Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Subscribers
4.64K
Photos
426
Videos
20
Links
212

Showing posts older than #219 · Back to latest

Older Posts 20 shown
Post #217 2.48K
php-vips

Очень быстрый пакет для работы с изображениями, который в ~5 раз быстрее Imagick или GD и потребляет меньше памяти. Это хороший пример FFI

⛓ Ссылка: тык

👉 @PHPgx | #ресурсы
  • 👍 13
Post #216 2.84K
💡 Совет по Laravel

Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop. Эта переменная предоставляет доступ к некоторым полезным битам информации.

👉 @PHPgx | #tips
  • 👍 14
Post #214 2.56K
Foundry

Библиотека-фабрика моделей для создания выразительных, автозаполняемых по требованию фич для разработки/тестирования с помощью Symfony и Doctrine

⛓ Ссылка: тык

👉 @PHPgx | #ресурсы
  • 👍 4
Post #213 2.74K
Что происходит, когда вы вводите URL-адрес в браузере?

Довольно простой вопрос, который могут спросить в ходе собеса

1️⃣Пользователь вводит URL:

🔹Браузер ищет IP-адрес в нескольких уровнях кеша (браузера, ОС, локальном и у провайдера).
🔹Если IP-адрес не найден, запрос отправляется к DNS-резолверу.

2️⃣ Браузер устанавливает TCP-соединение с сервером по протоколу HTTP или HTTPS.

3️⃣ Браузер отправляет HTTP-запрос (GET/POST/...) на сервер для получения данных.

4️⃣ Сервер отправляет HTTP-ответ с нужными данными (HTML, CSS, JS и т. д.), браузер обрабатывает и отображает страницу пользователю.
 
👉 Источник

👉 @PHPgx
  • 👍 10
  • 👀 4
  • 🌭 1
Post #211 2.13K
regexpbuilderphp

Интегрирует регулярные выражения в язык программирования, тем самым упрощая их чтение и поддержку. Регулярные выражения создаются с использованием связанных методов и переменных, таких как массивы или строки

👉 https://github.com/gherkins/regexpbuilderphp

👉 @PHPgx | #ресурсы
GitHub GitHub - gherkins/regexpbuilderphp: 🦉 human-readable regular expressions 🦉 human-readable regular expressions. Contribute to gherkins/regexpbuilderphp development by creating an account on GitHub.
  • 👍 3
  • 🤔 3
Post #210 2.09K
💡 Совет по Laravel

Используйте Model Broadcast для обновлений в реальном времени

Model broadcasting в Laravel позволяет получать обновления в реальном времени при создании, обновлении или удалении моделей Eloquent. Это идеально подходит для живых дашбордов или уведомлений.

Включите broadcasting в вашей модели:

👉 @PHPgx | #tips
  • 👍 8
Post #207 2.38K
💡 Один из самых старых советов и подсказок Laravel, но каждый раз, когда я делюсь им, многие люди говорят: «Вау, я не знал этого, так круто».

Цикл «forelse» в Blade.

👉 @PHPgx | #tips
  • 👍 22
  • 🤯 5
Post #205 2.15K
Null-safe оператор PHP

null-safe оператор ?-> позволяет безопасно обращаться к свойствам и методам объектов, которые могут быть равными null.

До появления null-safe оператора, доступ к свойству или методу объекта, который может быть равным null, мог привести к ошибке NullPointerException.

Оператор позволяет избежать этой ошибки, позволяя безопасно обращаться к свойствам и методам объектов, которые могут быть равными null, без необходимости использования оператора isset().

Примеры:
$user = User::findOrFail(1);

$name = $user?->name; // вернет имя пользователя, если $user не равен null

$age = $user?->getAge(); // вернет возраст пользователя, если $user не равен null


👉 @PHPgx | #заметки
  • 👍 12
  • ❤ 1
Post #204 2.04K
💡 Совет по Laravel

Данные загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.

👉 @PHPgx | #tips
  • 👍 9
Post #202 2.09K
Как получить список всех свойств объекта

В PHP можно получить список всех свойств объекта с помощью функции get_object_vars(). Эта функция возвращает массив, в котором ключами являются имена свойств, а значениями - их значения.

Пример использования функции get_object_vars():
    $object = new stdClass();
$object->name = "John Doe";
$object->age = 30;

$properties = get_object_vars($object);
print_r($properties);


Этот код выведет следующий результат:
    Array
(
[name] => John Doe
[age] => 30
)


Функция get_object_vars() может быть полезна, если вам нужно получить список всех свойств объекта. Например, вы можете использовать ее для создания списка всех элементов управления на форме или всех параметров в массиве.

👉 @PHPgx | #заметки
  • 👍 11
  • ❤ 1
Post #201 2.22K
Laravel Pipelines отлично подходят для разделения логики на отдельные классы действий, но они имеют ограничение — метод send принимает только один аргумент.

В такой ситуации стоит рассмотреть использование объекта payload, чтобы передать в конвейер несколько зависимостей.

👉 @PHPgx | #tips
  • 🔥 4
  • 👍 2
Post #200 2.27K
👉 @PHPgx | #memes
  • 😁 31
  • 👍 3
Post #198 2.51K
Защита чувствительных данных в 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());
}


В этом примере, если аутентификация не удастся, в логе вместо фактического значения пароля будет отображено ***.

👉 @PHPgx | #заметки
  • 👍 16
  • ❤ 2
Post #197 2.09K
Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки

В статье приводится пример использования инструментов профилирования, таких как xhprof и Buggregator, которые позволяют анализировать производительность и выявлять проблемные зоны.

👉 Читать

➡️ @PHPgx | #cтатья
  • 👍 6
Post #195 2.08K
💡 Совет по Laravel

Передавайте большие файлы без задержек, используя потоки

👉 @PHPgx | #tips
  • 👍 5
  • 🤔 2
Post #194 2.8K
PHP TUI

Фреймворк для создания консольных приложений на PHP с псевдографическим пользовательским интерфейсом.

https://github.com/php-tui/php-tui

👉 @PHPgx | #ресурсы
  • 👍 17
  • 😁 4
  • ❤ 1
Post #193 2.43K
👉 @PHPgx | #memes
  • 😁 45
  • ❤ 1
  • 👍 1
Post #191 2.47K
Защита конфиденциальных данных с помощью шифрования и расшифровки

➖ Задача: Безопасно зашифровать данные, чтобы защитить их от несанкционированного доступа, и расшифровать их при необходимости.

➖ Решение:
Используйте расширение Sodium для симметричного шифрования данных.

1️⃣ Генерация ключа шифрования

Сначала нужно создать секретный ключ для шифрования:
$key = sodium_crypto_secretbox_keygen(); // Генерация ключа
file_put_contents('secret.key', $key); // Сохранение ключа в файл


2️⃣ Шифрование данных

$message = "Конфиденциальные данные";
$key = file_get_contents('secret.key'); // Получение ключа из файла

$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); // Генерация случайного вектора инициализации
$ciphertext = sodium_crypto_secretbox($message, $nonce, $key);

// Сохранение зашифрованных данных
file_put_contents('data.enc', $nonce . $ciphertext);

echo "Данные успешно зашифрованы!";


3️⃣ Расшифровка данных
$key = file_get_contents('secret.key');
$encrypted = file_get_contents('data.enc');

$nonce = mb_substr($encrypted, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit');
$ciphertext = mb_substr($encrypted, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit');

$decrypted = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);

if ($decrypted === false) {
throw new Exception("Ошибка расшифровки данных!");
}

echo "Расшифрованные данные: {$decrypted}";



🔹Ключ: Генерируется однократно и должен храниться безопасно (например, за пределами кода, в конфигурационных файлах или хранилище секретов).
🔹Nonce (вектор инициализации): Должен быть уникальным для каждого сообщения, но его можно передавать в открытом виде вместе с шифротекстом.
🔹Алгоритм: Sodium использует AES-256-GCM или подобные современные алгоритмы для безопасного шифрования.


➖ Когда использовать:
🔹Защита конфиденциальной информации (паролей, токенов, личных данных).
🔹Шифрование конфигурационных файлов.
🔹Безопасное хранение данных в базе данных.

Никогда не храните ключи шифрования вместе с данными. Используйте безопасные хранилища, такие как HashiCorp Vault или AWS Secrets Manager.

👉 @PHPgx | #заметки
  • 👍 10
  • ❤ 4
Post #190 2.03K
💡 Совет по Laravel

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

👉 @PHPgx | #tips
  • 👍 10
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →