Pull to refresh
27
0
Дмитрий @xEpozZ

Готовлю кофе в аэропрессе, а php в докере.

Send message

Отличная статья.

Изменились ли показатели на первых графиках с временем выполнения запросов в бд? Или срез пика в прошлом году это и есть итог ваших работ?

Не кажется ли средний показатель в 300 мс неприемлемо большим?

Как несколько коннектов повлияло на rps монолита?

Стал ли haproxy чаще сбоить? Замечал сбои при подобных распилах

Проблема путей все ещё не решена до конца.

Если относительные пути ещё ок, то какой-нибудь fopen() будет ориентироваться на working directory, а это обычно папка с проектом, но бывает и другие пути. Как лучше сделать по умолчанию пока не решил. Если есть мысли, то можно так же в телеге их описать

Привет! В недавнем апдейте появилась поддержка ключей массива 🙃

Почему-то не пришли оповещения от Хабра о новых комментах. Если есть ещё идеи, лучше сразу в телегу писать.

<regexp from="([a-zA-Z]+)Controller\.php" to=""/>

Не понял для чего удалять имя контроллера.

Разве оно не участвует в поиске view файлов?

То есть лучше взять мой пример от yii2 проекта и поменять окружающие пути

Скорее всего для захвата группы нужно использовать круглые скобки. Как минимум это, как максимум попробовать экранировать слеши

Соболезную команде разработки коруса и всем тем, кто ставит на прекомит запуск чего-то. Мой вам совет, не делайте так никогда.

Старшие бекендеры потому и старшие, что знают ответы на эти вопросы :)

Привет из 2024.

Хочу сообщить, что документация всё еще скудная и приходится изучать другие проекты / собирать статьи в интернетах.

Реализация навигации и всё прочее всё еще отнимает тучу времени :)

У меня Mac, под Windows не тестировал. Скорее всего реализации работать не будут, а отключение функций будет.

Не отключать функции не получится. Цель отключения – это заменить функцию из глобального неймспейса на свою подмену. Иначе все вызовы \time() будут всегда идти в оригинальную функцию.

А реализовать саму функцию через `php -r 'echo time()';` – хорошая идея.

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

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

В каком таком отличии от mui эта библиотека позволяет навестить собственные стили?

Mui очень сильная по функционалу переопределения и расширения функционала библиотека. Она позволяет как изменить дефолтные стили компонентов, так и добавить свои собственные "пресеты" (варианты), так и полностью или динамически изменить весь компонент.

Стоит изучить ее возможности.

Если говорить про Symfony, то у них есть официальная интеграция с mercure в виде отдельного бандла.

Писать собственные веб-сокет серверы крайне не рекомендую. Особенно на пхп. Особенно с нуля.

P.S. Это конечно не полноценный WS, но покрывает множество случаев, когда требуется реалтайм с PHP бекендом.

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

Что касается PHPDoc, то его всегда стоит держать актуальным, примеры там часто спасают инспекцию кода. Документация будет строится и отдельно от PHPDoc, с примерами, туториалами и объяснениями. Данный цикл статей и направлен на развитие этой части ;)

Сейчас можно использовать как обычный шаблонизатор, так и twig расширение. Список можно найти здесь: https://github.com/yiisoft/view#extensions

Если нужен какой-то другой, то можно создать issue/pull request и перевести поддержку на core команду.

Если речь про виджеты, используемые в представлениях, то ответ – да, они есть.

По ссылке https://github.com/yiisoft/yii-widgets/#general-usage можно ознакомится с текущими виджетами.

Для кастомных виджетов можно пользоваться библиотекой https://github.com/yiisoft/widget. Там же есть примеры создания своих виджетов, а так же их "первичной" настройкой.

Вы серьезно думаете, что Стейт машина должна ходить в бд и читать консоль?

Как на счёт отправки смс и вебсокетов? :)

PHPUnit 9.0 умеет сам запускаться параллельно, попробуйте этот способ
Верно вы подметили с $model — я имел ввиду построитель запросов.
Я хотел сказать, что запросов умеет работаеть с кастомным текстом

Давайте возьмем за основу ваш пример. Его можно сделать вот так:
$queryBuilder = (new \yii\db\Query())
    ->select('*')
    ->from([
        't' =>
            (new \yii\db\Query())
                ->select('*')
                ->from('tab')
                ->where([
                    'id2' => 22,
                ]),
    ])
    ->where([
        't.id1' => 11,
    ]);
var_dump($queryBuilder->createCommand()->rawSql);

Выдает
SELECT * FROM (SELECT * FROM "tab" WHERE "id2"=22) "t" WHERE "t"."id1"=11


Если в where, from, select, orderBy, groupBy и любых других местах нужно использовать кастомные вещи, то можно сделать это с помощью \yii\db\Expression

Пример:
Задача: нужно сделать поиск по таблице users с использованием оператора LIKE по двум колонкам: name, surname.
Сделать это можем вот так:
$queryBuilder = (new \yii\db\Query())
    ->select('*')
    ->from('users')
    ->where(new \yii\db\Expression('CONCAT_WS(" ", name, surname) LIKE :query', ['query' => '%Вася%']));

Выведет следующее:
SELECT * FROM "users" WHERE CONCAT_WS(" ", name, surname) LIKE '%Вася%'


Можно и так:

$queryBuilder = (new \yii\db\Query())
    ->select('*')
    ->from('users')
    ->where(['LIKE', new \yii\db\Expression('CONCAT_WS(" ", name, surname)'), 'Вася']);

Выведет следующее:
SELECT * FROM "users" WHERE CONCAT_WS(" ", name, surname) LIKE '%Вася%'


Тоже самое можно делать и в select(), и в from(), и в groupBy(), и в orderBy(), и в having() — везде в общем :)
1

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Software Architect
Lead
From 500,000 ₽
PHP
PostgreSQL
Python
Docker
Symfony
React
JavaScript
TypeScript
Designing application architecture
Monitoring