Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
02 июля 2020, 06:55
+4
Хотел узнать твое мнение на этот счет.
У меня его нет, потому что я просто пишу код, как мне нравится, не задумываясь о шаблонах.
Василий Наумкин
01 июля 2020, 18:32
0
Он уже некоторое время у меня на карандаше.

Пока просто обнулил все отрицательные оценки, будет продолжать — отключу.
Василий Наумкин
30 июня 2020, 14:57
+3
Первое, что меня смутило, это метод process, который нужно явно определять в тех же роутах, вместо `__invoke()`, при использовании которого можно передать просто имя класса.
Во-первых, это тоже из MODX, основной метод процессора.
Во-вторых, я просто не знал, что можно как-то иначе.

После того, как я перестал завязываться на мир MODX, каждый день открываю что-то новое в PHP. Там на Git уже 2.x версия в разработке, так что попробую поменять на __invoke().

Классика миграций — это up/down, но пробовал ли change у phinx? Пишут, что он умеет сам определять, что нужно откатить.
Насколько я понял, оно работает только с родной схемой CakePHP, а я её не использую. По факту, Phinx здесь только как интерфейс для запуска скриптов. Да и up/down как-то понятнее.

можно поставить в настройках репозитория галочку Шаблон
Поставил, спасибо!

В остальном неплохой инструмент получился, лайк!
Спасибо, буду продолжать в том же духе.
Василий Наумкин
30 июня 2020, 06:46
0
Несовсем понятно, зачем использовать Laravel для фронта, если есть Vue и API на Slim4?

Это же лишнее звено получается, чисто для загрузки javascript.
Василий Наумкин
29 июня 2020, 17:08
+2
Конечно, было бы интересно почитать про JWT авторизацию
Совершенно ничего сложного, в Vesp оно из коробки, нужно только подключить пару контроллеров и один middleware.

Напишу продолжение, как время будет.
Василий Наумкин
29 июня 2020, 17:07
0
Ну и сразу вопрос, а что удобного, красивого, мощного используешь на backend для управления базой данных?
Это ты про какой-то интерфейс редактирования? Пока что пишу индивидуально для каждого проекта на Vue + Nuxt.


Но там тоже уже выделяются общие компоненты, которые переходят из проекта в проект, и когда-нибудь они оформятся в подобие админки.
Василий Наумкин
29 июня 2020, 17:04
0
А с чем связан вынос роутов в index.php?
Только с тем, что у меня их обычно немного.

А так, конечно, ничто не мешает их вынести в отдельный файл, да и для тестов это гораздо полезнее.
Василий Наумкин
29 июня 2020, 17:02
+3
было бы отлично дополнить по JWT
Сильно зависит от отклика и общего интереса, потому что писать такие заметки весьма трудозатратно.

особенно, про покрытие тестами
Так это ядро покрыто тестами, и каждый коммит автоматически улетает на разные сервисы для проверки.


А тесты для своего будущего приложения нужно будет писать самостоятельно. Хотя, про это тоже могу рассказать, конечно.
Василий Наумкин
28 июня 2020, 14:40
0
Фокус в том, что я этот код и не писал — что можно отследить по истории изменений.

Вот мой код 4-хлетней давности, здесь нет никакой проверки телефона


Потом 2 года назад она появилась


А потом её немного переписали, но смысл тот же


Так что, увы, это не я придумал делать телефон уникальным идентификатором покупателя. Документацию ты можешь изменить сам, она открыта — github.com/bezumkin/Docs
Василий Наумкин
13 июня 2020, 13:32
0
Thank you for sharing this app with me!
Василий Наумкин
10 июня 2020, 20:24
0
Я не в курсе, несколько лет им не пользовался.
Василий Наумкин
06 июня 2020, 17:11
0
Хороший разработчик прямо напрашивается.

Вы сейчас обсуждаете каким молотком строить дом, а не проект дома и кто его реально будет строить.
Василий Наумкин
05 июня 2020, 04:52
+4
Как-бы сам по себе PDO — это:
PHP Data Objects — расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных.
Почему-то для Eloquent не считается зазорным поддерживать SQLite, а вот для xPDO — сизифов труд.

Лично я использую SQLite в своей библиотеке для автоматического тестирования в Trevis, это проще и быстрее, чем поднимать MySQL.
Василий Наумкин
04 июня 2020, 08:17
0
Ничего не имею против, только это примерно тоже самое, что и запуск GNU/Linux в виртуальной машине.

Тем более, что WSL2 это виртуальная машина и есть.
Василий Наумкин
03 июня 2020, 05:40
0
Проверил и на своём рабочем компе, и на виртуальной машине на последней версии 10.15.5 — всё работает без проблем.

Но в заметку инфу добавил, спасибо.
Василий Наумкин
29 мая 2020, 15:25
+2
Потому что его нужно вот так настраивать )
Вот как? Ссылку забыл?

И 1 контейнер != один проект
Раз ты в один контейнер монтируешь несколько проектов — то как ты их там внутри разруливаешь, настраиваешь Nginx, БД, и всё остальное? В чём тогда разница между обычной виртуальной машиной?

Все немного иначе )
Мне нужно всё пасатижами из тебя тянуть?

Покажи как удобно работать с разными проектами в Docker с Xdebug без вот этих плясок с удалёнными интерпретаторами и прочими заморочками — я сравню.

А пока, увы, ты только делаешь умный вид, и никакой конкретики.
Василий Наумкин
29 мая 2020, 15:22
0
Там и ssh консоль есть и доступ к базе данных через ssh тоннель, чтобы в myPhpAdmin не лазить.
Это да, но мне нужно именно забирать полный дамп на локалку, и через консольный скрипт это работает в разы быстрее. Просто потому, что качается уже сжатый дамп, а PhpStorm гонит все гигабайты напрямую.

Потому и придумал этот скриптик, который радует каждый раз.

Так что тьфу на этот PowerShell ))
Да он всё равно будет только бледной копией нормальных интерпретаторов.
Василий Наумкин
29 мая 2020, 12:32
0
Ну для начала на Windows нет bash\zsh и прочих sh — power shell, насколько я знаю, и рядом не валяется по своим возможностям.

А потом там нет консольного SSH с авторизацией по ключам (как минимум, из коробки, возможно Putty это умеет). Ну а потом там нет pipelines (это палочки такие, которые перенаправляют вывод из одной команды в другую).

Так что этот однострочник на Windows превратится в небольшую программу.

P.S. На сайте MS пишут, что они уже умеют в pipelines, так что было бы интересно, если бы какой-нибудь знаток Windows переписал мой скриптик на Power Shell. Ну и вообще проверил, возможно ли это.
Василий Наумкин
29 мая 2020, 12:28
0
Это как так?

Вот у меня 2 проекта (на самом деле больше), и я каждый засунул в свой контейнер в Docker. То есть, там внутри своя копия GNU/Linux, PHP и Xdebug — как это я из двух разных контейнеров смогу дебажить PHP одной разовой настройкой? Да и еще и одновременно (а мне такое надо, потому что ядро системы это один проект, а сайт клиента на этом ядре — другой).

А судя по этой статье, там настраивается удалённый PHP интерпретатор, который для каждого контейнера будет свой. Ну и тесты нужно запускать внутри каждого контейнера примерно так:
docker-compose run --rm php-fpm vendor/bin/phpunit --testsuite unit

Скажи честно, ты пробовал сам Xdebug через Docker пользоваться, или просто предполагаешь, что с этим нет никаких проблем?

В данной статье был описан простой способ настройки и использования отладчика Xdebug в PhpStorm, если используется удаленный интерпретатор в виде Docker-контейнера.
Интерпретатор, как видно, в единственном числе.

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

Ну и в чём же тогда офигенное удобство Docker для локальной разработки, если его надо вот так настраивать?
Василий Наумкин
29 мая 2020, 03:30
+3
Ну как похоже… Это же Windows, она совсем не похожа на MacOS и GNU/Linux.

Не так команды набираются, не те команды набираются, нет кучи утилит, типа cat, sed, nano, ssh и т.д. Лично мне (лично мне) разрабатывать на Windows почти физически больно.

Вот например у меня локально есть большой проект, и мне переодически нужно обновлять БД для него с продакшена. Знаешь, как это делается на MacOS?
#!/bin/zsh

source ../.env

ssh ${DB_USERNAME}@site.ru "mysqldump -u${DB_USERNAME}  -p${DB_PASSWORD} ${DB_USERNAME} \
  --skip-lock-tables --add-drop-table --skip-comments --force --single-transaction --quick \
  | bzip2 --fast" | bunzip2 | mysql -uroot -proot local_db
В 2 строчки читаем настройки окружения, а затем через SSH запускаем на удалённом сервере mysqldump, пакуем вывод в bzip2, оно летит через зашифрованный канал на локальный комп, где распаковывается обратно и сразу грузится в БД. Даже без создания временного файла.

Не могу себе представить подобного удобства на Windows, увы.