Как стать автором
Обновить
33
2
Andrey Helldar @Helldar

Senior PHP Developer

Отправить сообщение

Согласен. В данном контексте и ситуации тоже придерживаюсь "ну не дают, так не дают, пойду посмотрю из того что дают".

Мне они лишь звонят по телефону. В инете ни разу на глаза не попадалась ни одна их форма ни с одним из опросников. На их сайте тоже лишь результаты беглым поиском найти можно. Сами опросники в виде формы на глаза так и не попались.

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

Я давал и не раз. Иногда удавалось по-человечески договориться без взятки. Отчим давал взятки. Речь о ГИБДД, если что. Я не нарушал, просто гаишникам нужно было до чего-то докопаться. За отчима не скажу.

В институте тоже за зачёты.

Оригинал вообще убогий какой-то. Раз включил, глаз дёргаться начал, особенно от голоса Джуди.

А зачем книги, фильмы, досуг, спорт, когда можно сесть и поиграть от души и для души? Тот же принцип. Палка о двух концах. Как говорится, на вкус и цвет фломастеры разные. Вот и здесь кому-то приятнее читать, кому-то бегать, кому-то в барах выпивать, а кому-то - играть за компьютером. Каждому своё.

Мне на днях позвонили из ВЦИОМ и впервые в жизни решил с ними поговорить.

  • У Вас есть время? Ответы займут не более 15-ти минут.

  • Да, есть.

  • Как я могу к Вам обращаться?

  • (имя)

  • Хорошо, (имя). Скажите, в каком регионе Вы проживаете?

  • (вот там)

  • Поняла, спасибо, всего доброго.

Весь разговор занял 1 минуту 37 секунд вместе с приветствием "здравствуйте я от туда и за тем-то, хотите поговорить?"

Мы даже до вопросов по анкете не дошли) Явно что-то там у себя записали и натыкали галки где им надо, как пить дать.

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

Всё поняли? Нужно не улучшать качество жизни и повышать зарплаты чтобы люди жили, а не выживали, а снижать цены на и так копеечный контент будь то фильм, музыка, софт и всё остальное. Л - Логика В.Ц.И.О.М!

Почему в штатах и в Европе цены "дикие" для нас? Да потому что эти цены для них сущие копейки т.к. зарплаты приличные. Да, не у всех и не везде, но в мы же не будем равняться на страны третьего мира? Не будем же? Ну... же...

pgAdmin - лучшая бесплатная

Jetbrains DataGrip - лучшая платная

Во многих проектах что я видел, чаще всего используется uuid4. На практике в одном маленьком проекте также имел проблему с дубликатами, вследствие чего приходилось писать костыли в виде:

use Illuminate\Support\Str;

class Uuid
{
    public static function generate(Model|string $model): string
    {
        do {
            $uuid = Str::uuid();
        } while ($model::whereKey($uuid)->exists());

        return $uuid;
    }
}

И, на практике с таблицей примерно в 2к записей бывали случаи когда уникальный идентификатор подбирался за 2, а то и за 3 прохода. В основном это случалось в момент массовой обработки данных по 500-1000 элементов.

А что мешает открыть сайт ya.ru?

И браузером по-умолчанию без права смены будет... АМИГО! 😂

Юзаю GetApps от китайцев. Через него Сбер обновляю и Тинькофф (второго тоже не так давно выпнули с Google Play).

Удачи в изменении порядка значений.

enum StatusEnum: int
{
    case New = 1;
    case Progress = 2;
    case Done = 3;
}

enum StatusEnum: int
{
    case Done = 3;
    case New = 1;
    case Progress = 2;
}

И ничего не изменится на уровне базы ¯\_(ツ)_/¯

И has_penis = true не факт что мужчина. Может женщина вдруг решила себе пришить... Или мужик сделал переход в женщину, но оставил себе причиндал.

Со стороны примеров кода да, а вот со стороны enum - какую бы БД с поддержкой данного типа ни выбрали, будет больно её обновлять если запросы кидаются не в чистом виде, а в наше время в этом нет необходимости когда достаточно пару-тройку методов вызвать.

Понял в чём причина.

Да, если напрямую отправлять в базу запрос на добавление элементов, например:

ALTER TABLE `payments`   
  CHANGE `status` `status` ENUM('new','progres','done','refund') CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

то ошибок нет и он отработает.

Но я работаю с базой через механику фреймворка Laravel и doctrine/dbal, которую он использует, по-умолчанию не умеет работать с полями типа enumв плане изменений. Создать - может, а изменить - нет. Поэтому приходилось прибегать к костылям вида:

DB::getDoctrineConnection()
    ->getDatabasePlatform()
    ->registerDoctrineTypeMapping('enum', 'string');

И раньше такая механика обнуляла все записи в изменяемой enum колонке. Сейчас же при попытке это сделать, я получаю ошибку:

Unknown column type "enum" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType()

Это значит, что костыль, который я применял несколько лет назад, перестал корректно работать по причине изменений в проекте Doctrine.

Код, на котором я тестирую
<?php

declare(strict_types=1);

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        DB::getDoctrineConnection()
            ->getDatabasePlatform()
            ->registerDoctrineTypeMapping('enum', 'string');

        Schema::dropIfExists('payments');

        Schema::create('payments', function (Blueprint $table) {
            $table->enum('status', ['new', 'progres', 'done']);
        });

        DB::table('payments')->insert([
            ['status' => 'new'],
            ['status' => 'progres'],
            ['status' => 'done'],
        ]);

        Schema::table('payments', function (Blueprint $table) {
            $table->enum('status', ['new', 'progres', 'done', 'refund', 'progress'])->change();
        });

        DB::table('payments')->insert([
            ['status' => 'refund'],
        ]);

        DB::table('payments')
            ->where('status', 'progres')
            ->update(['status' => 'progress']);

        Schema::table('payments', function (Blueprint $table) {
            $table->enum('status', ['new', 'progress', 'done', 'refund'])->change();
        });
    }
};

Статусы тоже меняются. Реже чем жанры игр, но меняются. На прошлой работе, например, ввели новые статусы "ожидание доставки" и "ожидание возврата".

Либо будет восприниматься как null если при конвертации используется вызов метода tryFrom вместо from. Это зависит от реализации в приложении.

Но вы ни слова не сказали о ключевой функциональности enum - ограничения списком допустимых значений, а тупо проигнорировали это

Во втором абзаце это написано:

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

Информация

В рейтинге
1 096-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Lead
От 350 000 ₽
PHP
MySQL
Git
OOP
Docker
Redis
SQL
Laravel
Elasticsearch