- 91
- 224 911
Студия Флаг
Russia
Registrace 28. 12. 2008
RectorPHP: Теперь рефакторить стало проще
Хочешь обновить PHP, но боишься, что придется переписывать слишком много кода? Боишься ошибиться в коде, пока рефакторишь проект? Обновил PHP, но не уверен, пользуешься ли ты всеми новыми нововведениями версии? Оставь всё это в прошлом! RectorPHP - вот что тебе нужно. Благодаря этой утилите ты сможешь просто, быстро, а главное безболезненно улучшить свой проект, начиная от обновления PHP, заканчивая проверкой логики кода и архитектурным рефакторингом. У руля, маэстро Больных Артем, бэкэнд-разработчик студии Флаг.
0:00 Вступление
0:44 Вводная часть. Пример
3:22 Что представляет собой RectorPHP визуально
4:00 Что такое RectorPHP?
4:24 Аналоги и преимущества RectorPHP
6:28 Что нужно, чтобы начать пользоваться RectorPHP?
8:08 Установка и первый запуск
9:00 Правила RectorPHP
9:48 Создание кастомного правила
12:35 Настройка RectorPHP
15:02 Запуск и результат рефакторинга
16:15 Дополнительные возможности. Архитектурный рефакторинг
18:29 Резюмируем возможности рефакторинга
18:57 Резюмируем RectorPHP
20:35 Пробуем RectorPHP на практике
22:35 Откуда подчерпнуть еще материал?
Не забывайте подписываться на наши соцсети, чтобы всегда быть в курсе того, что интересного у нас происходит, а интересно точно будет!
Изучайте Git на практике: gogit.ru/
Подписывайтесь на наш канал в Телеграм: t.me/flagstudio
ВК: flagstudio
Instagram: thisisflagbaby
0:00 Вступление
0:44 Вводная часть. Пример
3:22 Что представляет собой RectorPHP визуально
4:00 Что такое RectorPHP?
4:24 Аналоги и преимущества RectorPHP
6:28 Что нужно, чтобы начать пользоваться RectorPHP?
8:08 Установка и первый запуск
9:00 Правила RectorPHP
9:48 Создание кастомного правила
12:35 Настройка RectorPHP
15:02 Запуск и результат рефакторинга
16:15 Дополнительные возможности. Архитектурный рефакторинг
18:29 Резюмируем возможности рефакторинга
18:57 Резюмируем RectorPHP
20:35 Пробуем RectorPHP на практике
22:35 Откуда подчерпнуть еще материал?
Не забывайте подписываться на наши соцсети, чтобы всегда быть в курсе того, что интересного у нас происходит, а интересно точно будет!
Изучайте Git на практике: gogit.ru/
Подписывайтесь на наш канал в Телеграм: t.me/flagstudio
ВК: flagstudio
Instagram: thisisflagbaby
zhlédnutí: 465
Video
LaraПрактика #5. Документирование API. Swagger. Тестирование. Генерация клиента
zhlédnutí 792Před rokem
Всем привет! При создании API мы всегда пишем документацию для него. Для этого мы используем Swagger. В видео мы рассмотрим какие возможности по созданию документации нам даёт Swagger, а так же посмотрим на дополнительные возможности, которые мы получаем. 0:00 - Приветствие 0:14 - Тема видео 0:37 - Swagger 2:25 - Документирование 2:35 - Описываем GET запрос 3:44 - Генерируем документацию 4:20 -...
LaraПрактика #4. Action VS ViewModel. Разделение ответственности
zhlédnutí 451Před rokem
Всем привет! В своих проектах мы уже давно выносим бизнес-логику из контроллеров в специальные Action классы. Однако со временем мы заметили, что в проекте могут существовать две разные сущности под названием Action. Они занимаются разными вещами и несут разную ответственность. Именно об этом мы и будем сегодня говорить. И рассмотрим решение, которое нашли мы. 0:00 - Приветствие 0:10 - Тема вид...
Новое в PHP 8.2
zhlédnutí 389Před rokem
Всем привет! В этом обзорном видео мы поговорим об изменениях в PHP 8.2. Посмотрим на rfc, которые не были приняты, и rfc, которые были реализованы. 0:00 - Приветствие 0:27 - Нереализованные rfc 0:30 - array_group 2:04 - Переопределение операторов 3:15 - Sealed classes 3:48 - Short closures 4:33 - Реализованные rfc 4:42 - Динамические свойства 5:33 - Сокрытие данный из стека вызовов 6:23 - Новы...
LaraПрактика #3. MeiliSearch. Полнотекстовый поиск. Фасетный поиск.
zhlédnutí 1,2KPřed rokem
Всем привет! Не редко на нашей практике встречается задача по добавлению полнотекстового поиска в проект. Для решения поставленной задачи есть разные пути. Мы сделали свой выбор за полнотекстовым движком Meilisearch. Сегодня мы рассмотрим как с ним можно работать в Laravel. 0:00 - Приветствие 0:07 - Введение 0:42 - Laravel Scout 1:30 - Подключаем Meilisearch 3:11 - Настройка моделей 6:37 - Стра...
LaraПрактика #2. Pivot Model. Отношения в Pivot Model с другими таблицами
zhlédnutí 521Před rokem
Всем привет! Сегодня мы продолжим дорабатывать функционал, которые начали писать в прошлом видео. Для этого мы проведём рефакторинг кода. А затем используем pivot model для реализации отношений товар-цвет-картинка. И заодно подключим полезные пакет для работы с отношениями в pivot model. 0:00 - Начало 0:10 - Тема 0:20 - Рефакторинг кода из прошлого видео 1:40 - Результат рефакторинга 3:48 - Исп...
Видеоотзыв от HELLRIDE
zhlédnutí 241Před rokem
В этом видео наш заказчик Евгений Старостин поделился впечатлениями о нашем сотрудничестве. Интернет-магазин HELLRIDE уже 4 года занимается продажей трюковых самокатов и комплектующих. Ребята обратились к нам за разработкой нового, быстрого и функционального интернет-магазина. Скоро мы расскажем подробнее о проделанной работе, а пока предлагаем взглянуть на видеоотзыв. Приятного просмотра! Изуч...
ВВЕДЕНИЕ В REACT #2 // КОМПОНЕНТЫ
zhlédnutí 150Před rokem
Долгожданный второй урок по разработке мобильных приложений на React Native. В этом уроку мы узнаем как создавать кнопки, как вставить картинки и как делать модальные окна в React Native. Так же мы узнаем как писать стили в React Native и назначать их элементам и еще много всего интересного Подготовил: Алексей Укенов, Frontend-разработчик в it-компании Флаг Изучайте Git на практике: gogit.ru/ Н...
Видеокейс мобильного приложения для сети массажных салонов
zhlédnutí 566Před rokem
В этом видео мы кратко рассказали о тонкостях создания мобильного приложения для сети массажных салонов ТайРай 👀 Объясняем логику, говорим о начинке и обмениваемся парой слов о факапах. Бегом смотреть и ставить могучий лайк! Ссылка на текстовую версию нашего кейса: flagstudio.ru/portfolio/sozdanie-mobilnogo-prilozeniia-dlia-kompanii-tairai ТайРай: tairai.ru Изучайте Git на практик...
LaraПрактика #1. Livewire. Data binding, Actions, Events, Lifecycle, Nesting
zhlédnutí 837Před rokem
Всем привет! Сегодня мы начинаем новый курс по Laravel, где будем рассматривать решения практических задач, с которыми вы можете столкнуться. И решать свои задачи мы будем на Laravel. И начнём мы с интересного инструмента - Livewire. Это очень полезные инструмент для back-end разработчиков, которые не хотят становиться full-stack, однако фронт им всё же нужен. Рассмотрим как с ним можно работат...
LARAVEL + Clean Architecture // Роман Постников
zhlédnutí 9KPřed rokem
LARAVEL Clean Architecture // Роман Постников
Laravel Octane для ускорения работы приложения // Сергей Сахаров
zhlédnutí 4,1KPřed rokem
Laravel Octane для ускорения работы приложения // Сергей Сахаров
Внедряем SSR в проект // Максим Колмогоров
zhlédnutí 711Před rokem
Внедряем SSR в проект // Максим Колмогоров
Мутационное тестирование // Алексей Смирнов
zhlédnutí 615Před rokem
Мутационное тестирование // Алексей Смирнов
Основы DevOps // Как устроен PROD, CI/CD, Docker?
zhlédnutí 3,2KPřed rokem
Основы DevOps // Как устроен PROD, CI/CD, Docker?
Hot Update в React Native / Как быстро обновлять приложение?
zhlédnutí 821Před rokem
Hot Update в React Native / Как быстро обновлять приложение?
DevTools vs PageSpeed: измеряем скорость сайта
zhlédnutí 918Před 2 lety
DevTools vs PageSpeed: измеряем скорость сайта
LaraКурс #5. Модели. Несколько моделей для одной таблицы.
zhlédnutí 670Před 2 lety
LaraКурс #5. Модели. Несколько моделей для одной таблицы.
Динамическое подключение однофайловых Vue компонентов c помощью Webpack
zhlédnutí 490Před 2 lety
Динамическое подключение однофайловых Vue компонентов c помощью Webpack
Docker 18+. Как мы создавали инфраструктуру разработки
zhlédnutí 364Před 2 lety
Docker 18 . Как мы создавали инфраструктуру разработки
ElasticSearch vs Meilisearch. Полнотекстовый поиск на небольших проектах
zhlédnutí 1,4KPřed 2 lety
ElasticSearch vs Meilisearch. Полнотекстовый поиск на небольших проектах
Напомните, откуда пример с котиками взялся?)
21:37 заголовок Host это для организации Virtual Hosting (Multi-homed Web Servers) :}
17:55 401 - не редирект, ошибки на стороне клиента :}
AppCenter пишет, что в 2025 перестанет поддерживаться. Есть ли достойные аналоги?
Как можно таким неподготовленным записывать видео для людей?
Я правильно понимаю что в файле SantaBuilder.php никаких ларавел хелперов и прочего быть не должно, только "голый" php ?
только чистое ООП на пхп
Ни фига не понятно, но ОЧЕНЬ интересно. Что бы почитать по основам БД в принципе?
Большое спасибо за видео! Только в начале про id не совсем корректно - id это и есть primary key (первичный ключ). Это и есть главный ключ таблицы. А есть вторичный ключ (foreign key ) - для возможной связки с другой таблицей.
Спасибо за ваш труд🫶
Мда.. такое ощущение что видосу лет 10.. так все жиденько.. Ларка очевидно не для того чтобы ее там выпиливать, а для реализации слоя инфраструктуры.. хотя Laravel, Symfony, Yii2 это такой же легаси как и Zend которые зиждиться на плечах адептов которые не понимают зачем на самом деле composer.. И в доменный слой можно затянуть вендора.. тот же вендоровский uuid спокойно живет в ValueObject из слоя домена.. другое дело если вам нужны ваши любимые хелперы.. тут уж медицина бессильна.. Протечка доменов? Че? Протечка слоев ок.. для этого как раз это все.. но у домена есть контекст и в рамках контекста ему все равно кто его юзает логики там нет, только поведение.. хотя для MVCшников особенно начитавшихся про анемичную модель где ж ей еще быть ))
Здравствуйте, ваша точка зрения мне показалась очень интересной. Могли бы вы порекомендовать какие нибудь материалы которые бы более подробно раскрыли вашу концепцию.
Так а полнотекстовый поиск где?
Классный видеоролик! Если сразу стараться запоминать и понимать всё то, о чём говорится в видео, это очень поможет в начале обучения или вхождения в тему тестирования, того же.
Отличное видео. Стало намного понятнее, как взаимодействовать с БД различных типов
Отличное видео. Стало более понятней как взаимодействовать с БД
Подскажите, почему MeiliSearch при поиске например слова "баран", выводит в результате не только искомое слово но и такие как барашек, баланс, гарант и т.п.?
Прочитайте про три основных задачи поисковых движков. Стеминг Токенизация Нормализация
Супер, спасибо большое! Штудирую кучу информации уже больше недели для прохождения собеседования. Тут целая кладезь! Все понятно, есть примеры, простая подача. То, что искала! Спасибо за ваш опыт!!!
patch не является идемпотентным методом, у вас ошибка
Обычно он считается идемпотентным, но может и не быть таковым. Спасибо за уточнение!
Для такой небольшой задачи, гит можно было и выложить.
Clean Architecture подобно религии все трактует его по разному, на видео один из трактов можно сказать
Можно было взять задания поинтереснее, так и больше понимания придет
Докладчик вообще не понимает что говорит как будто, какая то каша. На вопрос про кэш вообще не ответил. Схожая реализация была и мы столкнулись с проблемой именно на nextjs/nuxtjs, что пока руками на сервере не дропнешь папку, то кеш не будет очищен. Делать это на стороне контейнера не лучше и фронт в принципе тогда не должен кешировать ничего из апи. И какая это best practice?
Посмотрел, спасибо за информацию Только смотрел на телефоне и код почти нереально увидеть из за размера шрифта
czcams.com/video/1TZt4Gz9AWM/video.htmlsi=ztoKTB9vNchdHatk&t=1085 тут вы говорите, что передавать УЖЕ (!!!) провалидированные данные в бизнес логику неправильно, так как мы не уверены что придет в массиве. Вот тут я не понял... А валидация нам зачем? передаем дальше в бизнес логику $request->validate() И все - мы уверены что придет ровно то, что нужно или валидация не пройдена, разве нет? Я читал ваш ответ ниже и там я не вижу ответа на вопрос - что значит мы не можем гарантировать? Как раз таки очень даже можем, для этого валидация и нужна. В чем я ошибаюсь? Можете показать конкретный пример, где одной валидацией мы бы не обошлись и DTO реально нужен, удобен, а не избыточен?
Спасибо за видео но передать request на вне контроллера) после этого я дальше не смотрел.
Спасибо большое
Видео топ. То, что я искал. Столкнулся с проблемой написания своего проекта с полного нуля. А там выплыло очень много чего я не знал, не очевидные моменты которые нужно продумывать. Тут в видео это как раз и проговаривается. Спасибо❤
Отвязаться от фрейворка, чтобы привязаться к другому. Заказчик всё оплатит, чо. Больше золота
Алексей, позвольте вопрос. Зачем создавать Экшен и Репозиторий? Это просто ваш полюбившийся стиль написания кода или некий стандарт? Я просто пишу так - запросы к базе в моделях, откуда их достает и как-то обрабатывает (приводит в нужный вид) контроллер. Все! Чистый MVC. Поэтому не понимаю зачем городить еще слои?
Плюсую. Я еще создаю папку сервис куда складываю бизнеслогику (оброботку какой то инфы). Где все понятно и элементарно просто. Сколько не смотрю видосов, все хотят усложнить все больше и больше ( наверное хотят показаться умными).
Ключевое не рассказал - как в базе хранятся эти данные, чтобы получалось дерево. Там есть поле parent_id например?
Здравствуйте, вас сервис keeper выкладывали?
Отвечаю: Правильно сказать безопасность или секретность или security [sɪˈkjʊərɪtɪ]
3:32:32 Сейчас бы назвать автора пакета "долбаебом", топовые спикеры 👍
Отличный урок для начинающих, намного лучше чем читать документацию!
Я не знаю, о каких больших проектах идет речь.... У нас зарубежный проект 100 - 300к запросов в час (среднем 1.5к юзеров в час ) в зависимости от часа пика. Архитектура Laravel сделана таким образом , что на ней можно крутить все в любых позах и как хочешь. В Контроллере максимум 5 строчек кода. Для дублирования и разрастания кода с успехом выносится все в трейты, сервисы и микро контроллеры. Про базу он вообще бред говорит, у нас на проекте 3 базы (на разных языках )+ несколько баз очередей включая на Go и с, для прослоек которые включаются в часы пик. Но это все слова. У меня несколько вопросов по факту: 1) Какая нагрузка проекта в час? 2) Сколько памяти проект потребляет на каждую тысячу запросов на архитектуре которую демонстрировали и на классической архитектуре? 3) Мы так и не увидели тесты скорости работы этой архитектуры в сравнении с классической? 4) Зачем использовать Laravel в данной архитектуре , если быстрее будет использовать чистый код? ( иначе нужно убрать 70% модулей фреймворка, которые тянутся паровозом и нагружают дополнительно проект) 5)Как считалась экономическая модель данного проекта если штат растет логарифмически? (то есть проект быстро развивается) 6)Покажите мне этого олуха, который скажет что архитектура Laravel сложна в тестировании? Это один из самых лучших фреймворков для тестирования, проще я даже и не вспомню. П,С очень много слов, мы так и не увидели микро примера из реальной логики этого проекта.про легкость тестирования мы услышали, но профуф не увидели. Вообщем мое мнение это просто пустой треп людей, у которых не хватает скила писать чистый код на Laravel. По поводу серверов я так и не понял очем речь? Сейчас 99% хайлоад проектов собирается из слепка на amazon с динамическим разбиением нагрузки на разные машины для стабильной + резервной работы и низкого пинга вне зависимости от числа пользователей. (кроме китайских сервисов) В мире нет аналогов по мощьности и стабильности, я думаю это все прекрасно знают. Я думаю данный подход и такие костыли сделаны для того, что бы заказчик при желании не смог поменять команду разработчкив и полностью от нее зависил, т.к поменять команду будет дороже, чем писать заново.
Хах, надеюсь вы еще не сошли с ума, вынося все в трейты) Из-за таких разработчиков как вы многие считают php умершим языком, все большие проекты пишутся по чистой архитектуре + DDD. Вы упомянули Go, но 90 процентов проектов на Go пишутся на чистой архитектуре, тинькоф, авито, озон и другие гиганты it-индустрии используют чистую архитектуру, а вы и дальше сидите в своей веб - студии и пилите интернет магазины на MVC структуре
По докладу, без вопросов, есть недочеты, да, можно было показать тестирования и чуть получше раскрыть пример из реальной логики. Но то что вы говорите, что чистая архитектура - это бред, говорит только о вашем узком мышлении и то что вы не принимаете общеизвестные факты, как вредный дед
@@user-dk1id8nn4oу моей команды 248 комитов на гите по проектам ларавел, мы прекрасно понимаем структуру и назначения каждой строчки. Когда мы обсуждаем вектор развития с Тэйлором, он прекрасно дал понять, что все развитие и дальнейшее использование должно быть векторно с доктринной. Я не знаю на каких знаниях основан ваш комментарий. Чистая архитектура на ларавел = это не ларавел. Laravel это доктрина. Можно взять пакеты и собрать все что угодно, но это не будет ларавел и он для этого не предназначен.Прочитайте хотя бы 1 раз доктрину ларавел , потом выпейте таблетки , которые прописал ваш психиатр, подумайте и напишите осмысленно. Резюмируя, зайдите в любой фреймворк и посмотрите что он есть.
Вы из 2005-го? В современной разработке ваши показатели нагрузок, производительности и прочего не имеют никакого значения вообще! Все это решается давно железом, некоторым даже проще через балансировщик еще пару серверов поднять чем профилировать запрос к БД и подбирать индексы.. Железо стоит копейки, дорого стоит разработка и поддержка и это единственное что всем движет.
@@ejoys3 вы правы, только для маленьких проектах
Привет , не совсем понял про DTO , зачем оно нужно если все понял мы можем описать в FormRequest а затем передать в сервис только validated массив данных. Как DTO спасает нас от того если какого то ключа массива не будет.
Добрый день. Наличие какого-либо ключа в массиве мы не можем гарантировать. А вот наличие всех свойств в объекте можем. При этом значение этого свойства может быть и null, если мы такое значение разрешаем. Но при желании мы можем и продумать для такого необязательного свойства какое-то иное значение, например, что-то вроде NullObject, которое не будет добавлять дополнительных if-ов в нашей бизнес-логике.
Огромное спасибо Автору за столь полезный контент! Всё понятно, приведены примеры, лойс однозначно :)
Тип сам не особо разбирается в том о чем говорит.
Какие видите ошибки?
Такое впечатление что я знаю больше и правильнее😆
Тогда вам нужно записать свое видео, чтобы оно надрало задницу моему🤷🏻♂️
Вы просто читаете со страницы 🤦♂️
Да нет, не читаю)
Зря ты забросил, у тебя хорошо получается обьяснять. Тебе нужен хороший микрофон, и написаный сюжет. И будет отлично. У тебя лучше, чем у 80% каналов на эту тему
У меня $request->getData() возвращает всегда тип DataObject, а не тип класса данных. Баг или фича?
Соответствует ли это IDEF1 или IDEF1X?
Синтаксический сахар как правило ухудшает читабельность кода. 2 строки чаще всего хуже чиьаются чем 10 строк. Благо любители вчитываться в каждый символ после универа меняют свои взгляды.
А почему не PostgreSQL?
7:54 Связь между письмом и списком пользователей неверная -- одно письмо, несколько списков, стрелка должна быть нарисована на противоположном конце линии в связи
Спасибо! На 18:13, кажется, оговорка - аунтефикация - залогинивание в систему, авторизация - прверка прав пользователя на доступ к ресурсу уже внутри системы, как я понимаю. Так что да 403 - не хватает прав, хотя пользователь прошел АУНТЕФИКАЦИЮ, но не прошел АВТОРИЗАЦИЮ Еще раз спасибо
Зачем говорить то о чем не имеешь представление. "Что это за поле а это id" возникает вопрос автор сам с этим работает? "Жавайте создадим список, молодцы создади" а что это такое и зачем он нужен ни слова. Не рекомендую данное видео запутаетесь еще больше
Вы рассказываете, что вы делаете. Но не рассказываете почему.
Мм, снова эта прелестная мадама, лайк однозначно)