Обновил сайт 😎
Стал легче, быстрее. Со стороны кода тоже🚀
Избавился от монструозного Vuetify 3 и решил попробовать Laravel VueJS Starter Kit. Фронтовую часть писал сам, зато роутинг подсмотрел в стартер ките. Работает отлично на первый взгляд, а там посмотрим 🙂
Также автоматизировал то, что раньше было гвоздями приколочено к vue файлам.
ЗЫ: под мобилы даже не смотрел вёрстку 😅
https://dragon-code.pro
Стал легче, быстрее. Со стороны кода тоже
Избавился от монструозного Vuetify 3 и решил попробовать Laravel VueJS Starter Kit. Фронтовую часть писал сам, зато роутинг подсмотрел в стартер ките. Работает отлично на первый взгляд, а там посмотрим 🙂
Также автоматизировал то, что раньше было гвоздями приколочено к vue файлам.
ЗЫ: под мобилы даже не смотрел вёрстку 😅
https://dragon-code.pro
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5
Сегодняшней ночью в одном из проектов было создано две иссуи с таким контекстом.
НИКОГДА НЕ ПЕРЕХОДИТЕ ПО ССЫЛКАМ ИЗ НИХ даже по тем, что внизу письма находятся (скрин из почтового клиента)
О том что это именно иссуя, я узнал зайдя в сам репозиторий проекта на GitHub и увидел его. В теле письма нижние ссылки на гитхаб оказались настоящие, а вот все остальные - фишинговые.
Рекомендуемые действия в таком случае:
1. Перейти в проект на GitHub через браузер (не по ссылкам из письма);
2. Скопировать ссылку на иссую и сделать её скриншот;
3. Перейти из интерфейса GitHub в профиль отправителя;
4. Слева под фото нажать на ссылку "Block or Report", во всплывающей форме нажать "Report abuse";
5. На открывшейся странице в поле категории ввести "spam" и выбрать соответствующий пункт из предложенных;
6. В тело сообщения вставить скопированную ссылку на иссую и приложить скриншот. Подробнее можно даже не писать;
7. Отправить.
Поддержка GitHub на такие случаи довольно быстро реагирует и аккаунт отправителя будет забанен.
Также Вы можете удалить иссую из репозитория. Для этого на её странице в правой колонке нужно нажать на соответствующую ссылку.
НИКОГДА НЕ ПЕРЕХОДИТЕ ПО ССЫЛКАМ ИЗ НИХ даже по тем, что внизу письма находятся (скрин из почтового клиента)
О том что это именно иссуя, я узнал зайдя в сам репозиторий проекта на GitHub и увидел его. В теле письма нижние ссылки на гитхаб оказались настоящие, а вот все остальные - фишинговые.
Рекомендуемые действия в таком случае:
1. Перейти в проект на GitHub через браузер (не по ссылкам из письма);
2. Скопировать ссылку на иссую и сделать её скриншот;
3. Перейти из интерфейса GitHub в профиль отправителя;
4. Слева под фото нажать на ссылку "Block or Report", во всплывающей форме нажать "Report abuse";
5. На открывшейся странице в поле категории ввести "spam" и выбрать соответствующий пункт из предложенных;
6. В тело сообщения вставить скопированную ссылку на иссую и приложить скриншот. Подробнее можно даже не писать;
7. Отправить.
Поддержка GitHub на такие случаи довольно быстро реагирует и аккаунт отправителя будет забанен.
Также Вы можете удалить иссую из репозитория. Для этого на её странице в правой колонке нужно нажать на соответствующую ссылку.
👍6❤1👌1
Сегодня я осознал что работаю с PHP уже 20 лет 😱
Как же быстро летит время...
HTML - ~24 года
CSS - ~24 года
JavaScript - ~22 года
И, конечно, звуковое сопровождение 😅
https://music.yandex.ru/album/26119228/track/114422104
Как же быстро летит время...
HTML - ~24 года
CSS - ~24 года
JavaScript - ~22 года
И, конечно, звуковое сопровождение 😅
https://music.yandex.ru/album/26119228/track/114422104
🎉13❤🔥3👍2
Forwarded from Новости от CutCode
Filament или MoonShine? Пора разобраться.
Если ты работаешь с Laravel — почти наверняка ты писал админку.
Типовой CRUD, кастомные формы, фильтры, роли, доступы...
Иногда ТЗ простое, иногда — ад.
Кто-то пишет с нуля, кто-то выбирает готовые решения: Nova, Filament, MoonShine…
Недавно на Laravel World провели опрос — и все три админки набрали почти одинаковое количество голосов.
У каждой админки есть свои сильные стороны, но в комьюнити до сих пор нет чёткого ответа, какая же админка лучше?
Давайте это исправим! CutCode устраивает баттл Laravel-админок:
MoonShine vs Filament
Я буду защищать MoonShine, а кто-то из комьюнити (один или несколько разработчиков) — Filament.
Если ты фанат Filament, уверенно разбираешься в нём, всем в чате советуешь использовать только его и не теряешься на камеру — напиши в личку.
Если есть кто-то на примете, можете тоже намекнуть мне)
Формат — прямой эфир, с реальными кейсами для честного сравнения.
Чтобы всё не закочилось потасовкой, позовём авторитетных жюри.
👀 В эфире:
💡 Часть 1 — Знакомство с админками и их философией
💡 Часть 2 — “Проблемные” задачи из жизни. Участники показывают, как справляется их админка
💡 Часть 3 — Дуэль фич: один “нападает” сильной стороной, второй парирует
💡 Часть 4 — Итоги и мнения жюри
💬 Соберем вопросы для баттла!
Чтобы баттл был не “ради шоу”, а реально полезным, мы собираем настоящие проблемы разработчиков:
— какие самые частые боли при разработке на готовых админках
— что по вашему мнению реализовать в админке сложнее всего
— что останавливает когда хотите выбрать готовую админку, и вы решаете написать свою
— что вы не смогли сделать в админке и пришлось сказать заказчику что сделать это нереально
📌 Не стесняйся, напиши в моего бота в свободной форме.
Не надо идеально формулировать — просто чтобы была понятна суть проблемы/кейса.
Telegram бот для записи вопросов на баттл админок
Почему стоит скинуть свой кейс?
Мы разберём его в прямом эфире.
Ты узнаешь, как бы это сделали с другой админкой.
Возможно, найдётся решение проще, чем ты думал.
Это не интервью, не конкурс, не доклад, а полезное обсуждение!
Честный разбор “что болит” у разработчиков и как это можно реализовать.
Дату баттла выберем, когда определимся с участниками и соберем вопросы!
Если ты работаешь с Laravel — почти наверняка ты писал админку.
Типовой CRUD, кастомные формы, фильтры, роли, доступы...
Иногда ТЗ простое, иногда — ад.
Кто-то пишет с нуля, кто-то выбирает готовые решения: Nova, Filament, MoonShine…
Недавно на Laravel World провели опрос — и все три админки набрали почти одинаковое количество голосов.
У каждой админки есть свои сильные стороны, но в комьюнити до сих пор нет чёткого ответа, какая же админка лучше?
Давайте это исправим! CutCode устраивает баттл Laravel-админок:
MoonShine vs Filament
Я буду защищать MoonShine, а кто-то из комьюнити (один или несколько разработчиков) — Filament.
Если ты фанат Filament, уверенно разбираешься в нём, всем в чате советуешь использовать только его и не теряешься на камеру — напиши в личку.
Если есть кто-то на примете, можете тоже намекнуть мне)
Формат — прямой эфир, с реальными кейсами для честного сравнения.
Чтобы всё не закочилось потасовкой, позовём авторитетных жюри.
👀 В эфире:
💡 Часть 1 — Знакомство с админками и их философией
💡 Часть 2 — “Проблемные” задачи из жизни. Участники показывают, как справляется их админка
💡 Часть 3 — Дуэль фич: один “нападает” сильной стороной, второй парирует
💡 Часть 4 — Итоги и мнения жюри
💬 Соберем вопросы для баттла!
Чтобы баттл был не “ради шоу”, а реально полезным, мы собираем настоящие проблемы разработчиков:
— какие самые частые боли при разработке на готовых админках
— что по вашему мнению реализовать в админке сложнее всего
— что останавливает когда хотите выбрать готовую админку, и вы решаете написать свою
— что вы не смогли сделать в админке и пришлось сказать заказчику что сделать это нереально
📌 Не стесняйся, напиши в моего бота в свободной форме.
Не надо идеально формулировать — просто чтобы была понятна суть проблемы/кейса.
Telegram бот для записи вопросов на баттл админок
Почему стоит скинуть свой кейс?
Мы разберём его в прямом эфире.
Ты узнаешь, как бы это сделали с другой админкой.
Возможно, найдётся решение проще, чем ты думал.
Это не интервью, не конкурс, не доклад, а полезное обсуждение!
Честный разбор “что болит” у разработчиков и как это можно реализовать.
Дату баттла выберем, когда определимся с участниками и соберем вопросы!
Telegram
Laravel World
Подведем итоги опроса о лучшей админке для Laravel. Проголосовало более двух с половиной тысяч человек, но однозначного лидера мы не выявили. Первая тройка идёт очень плотной группой, набрав по ~16% каждая. Тем не менее, по набранным голосам побеждает
FILAMENT…
FILAMENT…
🔥4👍3
Для тех кто использует Laravel Octane в связке с FrankenPHP
Laravel Octane 2.9 и ниже не умеет работать с FrankenPHP 1.5 - при запуске будет возникать ошибка:
Временный фикс:
https://github.com/laravel/octane/issues/1020
Laravel Octane 2.9 и ниже не умеет работать с FrankenPHP 1.5 - при запуске будет возникать ошибка:
Local: https://127.0.0.1:9000
Press Ctrl+C to stop the server
WARN unable to determine directory for user configuration; falling back to current directory.
WARN HTTP/2 skipped because it requires TLS.
WARN HTTP/3 skipped because it requires TLS.
WARN $HOME environment variable is empty - please fix; some assets might be stored in ./caddy.
Временный фикс:
-php artisan octane:install --server=frankenphp -q
+curl https://github.com/dunglas/frankenphp/releases/download/v1.4.4/frankenphp-linux-x86_64 -o frankenphp
https://github.com/laravel/octane/issues/1020
GitHub
$HOME environment variable is empty · Issue #1020 · laravel/octane
Octane Version 2.9.0 Laravel Version 12.8.1 PHP Version 8.4.6 What server type are you using? FrankenPHP Server Version 1.5.0 Database Driver & Version Postgres 17 Description When downloading ...
👍3
50 миллионов скачиваний — это наш общий успех!
Друзья, хочу поделиться с вами замечательной новостью! Суммарно по всем моим проектам было совершено 50 миллионов скачиваний! Это невероятный результат, и я очень рад, что мои программные продукты находят такой отклик у пользователей.
Хочу выразить огромную благодарность каждому, кто использует мои разработки. Ваше доверие и поддержка вдохновляют меня на новые свершения и помогают двигаться вперёд.
Спасибо, что вы со мной! Вместе мы сможем достичь ещё больших высот!
https://dragon-code.pro
Друзья, хочу поделиться с вами замечательной новостью! Суммарно по всем моим проектам было совершено 50 миллионов скачиваний! Это невероятный результат, и я очень рад, что мои программные продукты находят такой отклик у пользователей.
Хочу выразить огромную благодарность каждому, кто использует мои разработки. Ваше доверие и поддержка вдохновляют меня на новые свершения и помогают двигаться вперёд.
Спасибо, что вы со мной! Вместе мы сможем достичь ещё больших высот!
https://dragon-code.pro
👏12👍10🔥5❤2🫡1
Три способа построения запроса к релейшенам в Laravel
Результаты бенчмарка на 100'000 итераций с вызовом метода
https://laravel.com/docs/12.x/eloquent-relationships#querying-belongs-to-relationships
// Вариант 1
Inventory::query()
->where('city_id', $city->id)
->where('product_id', $product->id)
->where('store_id', $store->id)
->get();
// Вариант 2
Inventory::query()
->whereCityId($city->id)
->whereProductId($product->id)
->whereStoreId($store->id)
->get();
// Вариант 3
Inventory::query()
->whereBelongsTo($city)
->whereBelongsTo($product)
->whereBelongsTo($store)
->get();
Результаты бенчмарка на 100'000 итераций с вызовом метода
toRawSql() вместо get() из примера выше:------- -------------------- -------------------- ---------------------
# where(column_id) whereColumnId whereBelongsTo
------- -------------------- -------------------- ---------------------
min 0.061 ms - 0 bytes 0.067 ms - 0 bytes 0.202 ms - 0 bytes
max 2.509 ms - 2.00 MB 1.155 ms - 2.00 MB 25.029 ms - 2.00 MB
avg 0.087 ms - 0 bytes 0.096 ms - 0 bytes 0.28 ms - 0 bytes
total 23285.103 ms 24046.848 ms 42309.312 ms
------- -------------------- -------------------- ---------------------
Order - 1 - - 2 - - 3 -
------- -------------------- -------------------- ---------------------
https://laravel.com/docs/12.x/eloquent-relationships#querying-belongs-to-relationships
Laravel
Eloquent: Relationships | Laravel 12.x - The clean stack for Artisans and agents
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
❤2
🚀 Улучшенное взаимодействие с конфигами в Laravel
1. Создайте файл
2. В корне проекта создайте файл
Теперь по хоткею Laravel Idea можно легко создавать классы для конфигов.
1. Создайте файл
stubs/config_class.stub со следующим содержимым:<?php
declare(strict_types=1);
namespace DummyNamespace;
class DummyClass
{
public static function hasDebug(): bool
{
return config('app.debug');
}
}
2. В корне проекта создайте файл
ide.json либо добавьте объект генерации если файл уже существует:{
"$schema": "https://laravel-ide.com/schema/laravel-ide-v2.json",
"codeGenerations": [
{
"id": "app.config.class",
"name": "Create Config Class",
"classSuffix": "Config",
"regex": ".+",
"files": [
{
"appNamespace": "Config",
"name": "${INPUT_CLASS|replace: ,_|className|upperCamelCase}.php",
"template": {
"type": "stub",
"path": "stubs/config_class.stub",
"parameters": {
"DummyNamespace": "${INPUT_FQN|namespace}",
"DummyClass": "${INPUT_CLASS|replace: ,_|className|upperCamelCase}"
}
}
}
]
}
]
}Теперь по хоткею Laravel Idea можно легко создавать классы для конфигов.
👍4
Наглядное представление отличий при использовании дефолтных значений, назначаемых колонкам БД от назначаемых внутри Laravel модели.
vs
Schema::create('foo', function (Blueprint $table) {
$table->boolean('is_active')->default(false);
});
return Foo::create()->is_active; // null
return Foo::first()->is_active; // falsevs
Schema::create('foo', function (Blueprint $table) {
$table->boolean('is_active')->default(false);
});
class Foo extends Model
{
protected $attributes = [
'is_active' => true,
];
}
return Foo::create()->is_active; // true
return Foo::first()->is_active; // true👍4
Hawk - российский трекер ошибок
Может работать с Sentry SDK
https://hawk.so
https://hawk-tracker.ru/pricing.pdf
Может работать с Sentry SDK
https://hawk.so
https://hawk-tracker.ru/pricing.pdf
👍3🔥2
Удобный способ выгрузки приложения из памяти без открытия окна диспетчера задач в Windows 11
Для активации нужно зайти в "Параметры" - "Система" - "Для разработчиков" и активировать опцию "Завершить задачу".
После этого появится новый пункт меню при клике правой кнопкой мыши по иконке программы.
Для активации нужно зайти в "Параметры" - "Система" - "Для разработчиков" и активировать опцию "Завершить задачу".
После этого появится новый пункт меню при клике правой кнопкой мыши по иконке программы.
❤3👍2
🧙♂️ Притча о свитке и кузнеце
В одном городе был мудрец, который создавал подробнейшие свитки с описанием дел. Он выписывал каждую мелочь: и где стоит камень, и как дует ветер, и в какой момент лучше всего начать путь. Свитки были ясны, как дневной свет.
Но вот кузнецы, которым предназначались эти свитки, часто бросали лишь взгляд на начало, хватали молот и бежали работать. А потом возвращались с вопросами:
— А где найти камень?
— А что за ветер сбил нас с пути?
Мудрец, устав от повторов, однажды сказал:
— Кто не читает свиток, тот рискует биться лбом об тот же камень, про который я уже трижды писал.
С тех пор в мастерской повесили табличку:
В одном городе был мудрец, который создавал подробнейшие свитки с описанием дел. Он выписывал каждую мелочь: и где стоит камень, и как дует ветер, и в какой момент лучше всего начать путь. Свитки были ясны, как дневной свет.
Но вот кузнецы, которым предназначались эти свитки, часто бросали лишь взгляд на начало, хватали молот и бежали работать. А потом возвращались с вопросами:
— А где найти камень?
— А что за ветер сбил нас с пути?
Мудрец, устав от повторов, однажды сказал:
— Кто не читает свиток, тот рискует биться лбом об тот же камень, про который я уже трижды писал.
С тех пор в мастерской повесили табличку:
«Прежде чем ковать — прочти весь свиток. Возможно, он убережёт тебя от лишней боли и спасёт чьё-то терпение».
👍2
Позавчера Тейлор запустил новый сервис - Laravel Nightwatch.
Это сервис мониторинга работы приложения.
Краткий отзыв по истечении двух дней его использования вместе с анти-спам ботом @KvedeBot:
- Выдаёт общую информацию (есть или нет проблемы), в детали не вдаётся;
- Показывает список реально вызываемых консольных команд. Так, например, я узнал о команде
- Можно увидеть запросы к БД, но без самих данных - только конструкт;
- От внешних запросов виден лишь адрес без тела запроса;
- По общей статистике использования видим что из 200к бесплатных эвентов за двое суток приложение сожрало 173'596 (87%), из которых 49'009 эвентов - работа с кэшем. Да, эти
Таким образом, пришёл к выводу, что это MVP продукта и, с большой долей вероятности, он действительно будет хорош, но - потом. В текущем исполнении Nightwatch, скажем так, публикует хлам из подноготной фреймворка. Моё мнение, он делает это для того, чтобы побыстрее сожрать бесплатные лимиты дабы люди оформляли подписку.
В целом, сервис прикольный, но на полном серьёзе на сервере его использовать ну такое.
Это сервис мониторинга работы приложения.
Краткий отзыв по истечении двух дней его использования вместе с анти-спам ботом @KvedeBot:
- Выдаёт общую информацию (есть или нет проблемы), в детали не вдаётся;
- Показывает список реально вызываемых консольных команд. Так, например, я узнал о команде
php artisan schedule:finish, которая была вызвана 2'120 раз за это время... И да, эта команда также лимиты жрёт;- Можно увидеть запросы к БД, но без самих данных - только конструкт;
- От внешних запросов виден лишь адрес без тела запроса;
- По общей статистике использования видим что из 200к бесплатных эвентов за двое суток приложение сожрало 173'596 (87%), из которых 49'009 эвентов - работа с кэшем. Да, эти
cache hit, read, write и т.д. тоже считаются.Таким образом, пришёл к выводу, что это MVP продукта и, с большой долей вероятности, он действительно будет хорош, но - потом. В текущем исполнении Nightwatch, скажем так, публикует хлам из подноготной фреймворка. Моё мнение, он делает это для того, чтобы побыстрее сожрать бесплатные лимиты дабы люди оформляли подписку.
В целом, сервис прикольный, но на полном серьёзе на сервере его использовать ну такое.
❤5👍3✍1