PHP Academy
6.14K subscribers
76 photos
21 videos
242 links
@tombange - с вопросами
Download Telegram
Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:


Машинное обучение: @ai_machinelearning_big_data
Go: @Golang_google
C#: @csharp_ci
Базы данных: @sqlhub
Python: @pythonl
C/C++/: @cpluspluc
Data Science: @data_analysis_ml
Devops: @devOPSitsec
Rust: @rust_code
Javascript: @javascriptv
React: @react_tg
PHP: @phpshka
Docker: @docker
Android: @android_its
Мобильная разработка: @mobdevelop
Linux: linuxacademy
Big Data: t.me/bigdatai
Хакинг: @linuxkalii
Java:@javatg
Собеседования: @machinelearning_interview


💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy

🔥ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: @english_forprogrammers

📕Ит-книги https://t.me/addlist/BkskQciUW_FhNjEy
🖥 LLPhant - это полноценная инфраструктура на PHP, для создавания искусственного интеллекта и генерации сложных приложенияй.

Эта платформа разработана с учетом максимальной простоты в использовании и предлагает инструменты, необходимые для разработки мощных приложений. Она совместима с Symfony и Laravel, что делает ее гибкой в использовании и интеграции с другими технологиями.

Github

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP Fibers: практический пример
https://habr.com/ru/articles/756642/
🤔 Каждый начинающий айтишник задумывался какой язык программирования выбрать.
Наш канал поможет избавиться Вам от этого гнетущего вопроса.
Единственный вопрос который вы должны задать это «А может на PHP?»

Посмотреть канал
💻📖 hacker-laws

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

@phpshka
⚡️Почему тип поля enum на уровне базы — зло

Тип колонки enum используется для хранения данных, которые могут принимать определённые значения из заранее определённого набора.
Он обеспечивает ограничение значений, которые может принимать колонка, и позволяет более строго контролировать данные.
Это может быть полезно для хранения статусов, категорий, типов или любых других значений, которые могут быть заданы только из ограниченного набора вариантов.

А что на практике? Давайте рассмотрим.

Допустим у нас есть таблица со списком платежей, содержащая колонку status со следующими значениями:
CREATE TABLE `payments`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`status` ENUM('new', 'progress', 'done', 'fauled') NOT NULL,
KEY(`id`)
) CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


▪️Через какое-то время была замечена грамматическая ошибка в слове "failed" и принято решение её исправить.

Нюанс изменения enum поля в том, что при его редактировании сбрасываются значения колонки в null для всех строк таблицы, а то и вовсе получим ошибку Data truncated for column 'status' at row 3. То есть, чтобы корректно изменить enum поле, нужно куда-то сохранить данные. План действий будет таков:

1. Создать новую enum колонку с правильным набором данных;

2. Скопировать значение из старой колонки в новую и сразу применить исправление значения;

3. Удалить старую enum колонку;

4. Переименовать новую enum колонку.

При использовании фреймворка Laravel это будет выглядеть следующим образом:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
public function up(): void
{
// Создаём новую колонку
Schema::table('payments', function (Blueprint $table) {
$table->enum('tmp_status', ['new', 'progress', 'done', 'failed']);
});

// Копируем значения из enum колонки в новую с корректировкой значения
DB::statement('UPDATE payments SET tmp_status = (IF status = \'fauled\' THEN \'failed\' ELSE status END IF)');

// Удаляем старую колонку
Schema::table('payments', function (Blueprint $table) {
$table->dropColumn('status');
});

// Переименовываем колонку
Schema::table('payments', function (Blueprint $table) {
$table->renameColumn('tmp_status', 'status');
});
}
};


На языке SQL эти действия будут выглядеть следующим образом:

📌 Читать далее

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Что нового в новом PHP 8.3.

PHP 8.3 выйдет 23 ноября 2023 года; в нем будут улучшения для классов readonly, новая функция json_validate(), дополнения к недавно добавленному классу Randomizer, обнаружение переполнения стека и многое другое.

📌Подробнее

@phpshka
👣 php-tokio 🖥

Эта библиотека позволяет асинхронно использовать любую библиотеку async rust из PHP.

Github

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🖥 Введение в графовые БД в PHP

Введением в использование графовых баз данных php разработчиков.

Здесь разобраны основные причины, по которым стоит начать использовать графовые базы данных, основываясь на практическом опыте веб-разработки.

📌Источник

@phpishka
Please open Telegram to view this post
VIEW IN TELEGRAM
Интернет из PHP
https://habr.com/ru/articles/759946/