👉 Как в Laravel создать контроллер вместе с моделью и миграцией одной командой
Выполните следующую команду в терминале:
YourModelName меняем на название нашей модели.
Опции -m, -c и -r обозначают:
-m — создать миграцию для модели
-c — создать контроллер
-r — создать контроллер с ресурсными методами
После этого Laravel создаст модели, контроллеры и миграцию в соответствующих директориях нашего проекта.
Выполните следующую команду в терминале:
php artisan make:model YourModelName -mcr
YourModelName меняем на название нашей модели.
Опции -m, -c и -r обозначают:
-m — создать миграцию для модели
-c — создать контроллер
-r — создать контроллер с ресурсными методами
После этого Laravel создаст модели, контроллеры и миграцию в соответствующих директориях нашего проекта.
👉 Как деплоить проект - по шагам
При разработке собственного проекта, после внесения каких-либо изменений в нём возникает необходимость его деплоя. Это связано с тем, что изменения, которые были внесены, требуют актуализации кода на сервере, чтобы обеспечить их доступность для пользователей.
При разработке собственного проекта, после внесения каких-либо изменений в нём возникает необходимость его деплоя. Это связано с тем, что изменения, которые были внесены, требуют актуализации кода на сервере, чтобы обеспечить их доступность для пользователей.
👉 Git в Visual Studio Code: пошаговый алгоритм по созданию и восстановлению версий проекта
Если вы когда-либо теряли важные изменения в своем проекте или сталкивались с необходимостью вернуться к предыдущей версии кода, вам знакомы все прелести головной боли, связанные с этим.
Ранее многим разработчикам приходилось вручную создавать копии своих проектов и управлять версиями, перезаливая папку с проектом на локальный сервер. Это было трудоемко и занимало много времени. Однако с появлением Git эта проблема решается в несколько простых шагов.
Git - это отличный инструмент, который позволяет отслеживать все изменения в проекте и легко возвращаться к любой его версии, не создавая копии напрямую.
К примеру: мы разрабатываем проект в Visual Studio Code и периодически нуждаемся в создании копий всего проекта. Также у нас возникает необходимость возвращаться к определенной версии проекта и продолжать работу с ней. Как можно реализовать эту задачу на локальной системе с помощью Git?
Если вы когда-либо теряли важные изменения в своем проекте или сталкивались с необходимостью вернуться к предыдущей версии кода, вам знакомы все прелести головной боли, связанные с этим.
Ранее многим разработчикам приходилось вручную создавать копии своих проектов и управлять версиями, перезаливая папку с проектом на локальный сервер. Это было трудоемко и занимало много времени. Однако с появлением Git эта проблема решается в несколько простых шагов.
Git - это отличный инструмент, который позволяет отслеживать все изменения в проекте и легко возвращаться к любой его версии, не создавая копии напрямую.
К примеру: мы разрабатываем проект в Visual Studio Code и периодически нуждаемся в создании копий всего проекта. Также у нас возникает необходимость возвращаться к определенной версии проекта и продолжать работу с ней. Как можно реализовать эту задачу на локальной системе с помощью Git?
👉 Памятка Laravel + Vue 3 - от разработки до обновления на внешнем сервере/хостинге
Памятка по работе с проектом Laravel + InertiaJS + Vue 3 с Vite (синтаксис <script setup>) – основное от разработки до обновления на внешнем сервере (хостинге) с ручным деплоем:
➡️
➡️
➡️ добавляем изменения в git :
!!! учитываем содержание файла .gitignore
➡️ коммитим:
➡️ заливаем изменения на GitHub:
➡️ подключаемся к серверу (хостингу) с локального терминала с помощью ssh-ключа (VS Code):
➡️ обновляем проект на сервере (хостинге):
git pull origin master
➡️ если добавлялись/менялись пакеты зависимостей в проекте, то с помощью Composer на сервере вносим изменения:
➡️ делаем обновление миграций: php artisan migrate:refresh
Памятка по работе с проектом Laravel + InertiaJS + Vue 3 с Vite (синтаксис <script setup>) – основное от разработки до обновления на внешнем сервере (хостинге) с ручным деплоем:
➡️
npm run dev : работа с проектом (вносим изменения)➡️
npm run build : компиляция в продакшен версию➡️ добавляем изменения в git :
git add .!!! учитываем содержание файла .gitignore
➡️ коммитим:
git commit -m "name changes"➡️ заливаем изменения на GitHub:
git push➡️ подключаемся к серверу (хостингу) с локального терминала с помощью ssh-ключа (VS Code):
ssh -i ~/.ssh/id_rsa r****i@r****.***.***➡️ обновляем проект на сервере (хостинге):
git pull origin master
➡️ если добавлялись/менялись пакеты зависимостей в проекте, то с помощью Composer на сервере вносим изменения:
php composer.phar install➡️ делаем обновление миграций: php artisan migrate:refresh
Как-то Так
Памятка Laravel + Vue 3 - от разработки до обновления на внешнем сервере/хостинге
Памятка по работе с проектом Laravel + InertiaJS + Vue 3 с Vite (синтаксис script setup) - основное от разработки до обновления на внешнем сервер (хостинге) с ручным деплоем / Экономика на простом – онлайн решения и web-разработка
👉 Сегодня полдня промаялся, чтобы понять, что при компилировании VUE приложения для встраивания его в плагин WordPress необходимо подключаемому на продакшене js скрипту обязательно добавлять атрибут type="module" таким образом (в основном файле плагина).
Изнасиловал СhatGpt, но в итоге поисковик помог 😆
До этого постоянно в консоли был такой сюрприз.
С итоге подключаемый скрипт Vue должен иметь какой вид:
<script type="module" src="https://wc1.net/wp-content/plugins/my-custom-table-plugin/dist/assets/main-Cp7g2Mzb.js" id="my-vue-app-js"></script>
Банально, но, тем не менее нюанс.
Изнасиловал СhatGpt, но в итоге поисковик помог 😆
До этого постоянно в консоли был такой сюрприз.
С итоге подключаемый скрипт Vue должен иметь какой вид:
<script type="module" src="https://wc1.net/wp-content/plugins/my-custom-table-plugin/dist/assets/main-Cp7g2Mzb.js" id="my-vue-app-js"></script>
Банально, но, тем не менее нюанс.
👉 Создание плагина для WordPress: Vue 3 и Ant Design для динамического отображения данных
Для понимания процесса разработки плагина на популярном движке WordPress совместно с JS фреймворком Vue 3 (composition api синтаксис script setup) рассмотрим простой пример, где реализуем серверный вывод данных из базы данных MySQL на клиент в таблицу Ant Design (популярной системы разработки пользовательских интерфейсов).
Так же предусмотрим асинхронный серверный функционал для поиска, сортировки и пагинации данных таблицы.
Подробно рассмотрим по шагам весь процесс решения данной задачи.
Для понимания процесса разработки плагина на популярном движке WordPress совместно с JS фреймворком Vue 3 (composition api синтаксис script setup) рассмотрим простой пример, где реализуем серверный вывод данных из базы данных MySQL на клиент в таблицу Ant Design (популярной системы разработки пользовательских интерфейсов).
Так же предусмотрим асинхронный серверный функционал для поиска, сортировки и пагинации данных таблицы.
Подробно рассмотрим по шагам весь процесс решения данной задачи.
👉 Принцип работы add_action и do_action в WordPress - на простом
Одно время, когда на WordPress (WP) пытался реализовать что-то своё, поначалу были некоторые непонятки с add_action и do_action в контексте кодирования на WP.
Понимание сущности двух ключевых функций - add_action и do_action - является фундаментальным для разработки проектов на WP, поскольку именно они составляют основу архитектуры написания и вывода кода на этой платформе.
Мощная система хуков, позволяющая разработчикам добавлять и изменять функциональность без редактирования основного кода. Именно эти две ключевые функции в этой системе и решают эти задачи.
Одно время, когда на WordPress (WP) пытался реализовать что-то своё, поначалу были некоторые непонятки с add_action и do_action в контексте кодирования на WP.
Понимание сущности двух ключевых функций - add_action и do_action - является фундаментальным для разработки проектов на WP, поскольку именно они составляют основу архитектуры написания и вывода кода на этой платформе.
Мощная система хуков, позволяющая разработчикам добавлять и изменять функциональность без редактирования основного кода. Именно эти две ключевые функции в этой системе и решают эти задачи.
👉 Ошибка при миграции в Laravel: очередность выполнения миграций при работе с внешними ключами и таблицами
Порой возникают ситуации в Laravel при создании отдельных таблиц БД, когда порядок миграций влияет на успешное выполнение операций по их развёртыванию.
Например, ситуация
Вы делаете проект на Laravel, и возникла необходимость добавить в базу данных новую таблицу (unit_orders - в качестве примера), которая будет связана своим первичным ключом с таблицей (employers - в качестве примера), ранее созданной.
Перед добавлением новой таблицы (путём миграции) откатываем все существующие миграции до исходного состояния командой
Далее создаем новую миграцию для нашей новой таблицы с помощью команды
В итоге создается необходимый нам «букет» - контроллер, модель и миграция. Но созданная миграция оказывается внизу.
В папке migrations файлы миграций будут расположены в хронологическом порядке от дат (временных меток) их создания.
Если сейчас накатить все миграции для нашего проекта, то мы получим ошибку следующего типа:
«Уже созданная таблица не может добавить внешний ключ той таблицы, которая ещё не существует»
Подробнее
Порой возникают ситуации в Laravel при создании отдельных таблиц БД, когда порядок миграций влияет на успешное выполнение операций по их развёртыванию.
Например, ситуация
Вы делаете проект на Laravel, и возникла необходимость добавить в базу данных новую таблицу (unit_orders - в качестве примера), которая будет связана своим первичным ключом с таблицей (employers - в качестве примера), ранее созданной.
Перед добавлением новой таблицы (путём миграции) откатываем все существующие миграции до исходного состояния командой
php artisan migrate:rollback
Далее создаем новую миграцию для нашей новой таблицы с помощью команды
php artisan make:model UnitOrder -mcr
В итоге создается необходимый нам «букет» - контроллер, модель и миграция. Но созданная миграция оказывается внизу.
В папке migrations файлы миграций будут расположены в хронологическом порядке от дат (временных меток) их создания.
Если сейчас накатить все миграции для нашего проекта, то мы получим ошибку следующего типа:
«Уже созданная таблица не может добавить внешний ключ той таблицы, которая ещё не существует»
Подробнее
Как-то Так
Ошибка при миграции в Laravel: очередность выполнения миграций при работе с внешними ключами и таблицами
Как добавить новую таблицу в проект Laravel и решить проблемы с внешними ключами при миграции. Пошаговое руководство по откату миграций и изменению дат файлов для успешного выполнения миграций. / Экономика на простом – онлайн решения и web-разработка
👉 Кастомизация на Tailwind CSS: Простой совет по стилизации элементов
Порой сложно сразу перейти на стилизацию своего проекта с использованием Tailwind CSS, когда до этого ты всё время стилизовал элементы страницы с помощью стандартного CSS.
В Tailwind CSS, начиная с версии 2.1, можно использовать классы с динамическими значениями, например, с помощью конструкции [ ] . Это позволяет задавать цвета, фоны и размеры с использованием произвольных значений прямо в классе. Это особенно полезно, когда вы хотите использовать кастомные цвета без необходимости изменять конфигурацию Tailwind.
Подробнее на простом примере здесь.
Порой сложно сразу перейти на стилизацию своего проекта с использованием Tailwind CSS, когда до этого ты всё время стилизовал элементы страницы с помощью стандартного CSS.
В Tailwind CSS, начиная с версии 2.1, можно использовать классы с динамическими значениями, например, с помощью конструкции [ ] . Это позволяет задавать цвета, фоны и размеры с использованием произвольных значений прямо в классе. Это особенно полезно, когда вы хотите использовать кастомные цвета без необходимости изменять конфигурацию Tailwind.
Подробнее на простом примере здесь.
👉 Асинхронные запросы в Laravel с Inertia.js и Vue 3 - как лучше
Практически вся разработка приложения на Laravel с использованием Inertia.js и Vue 3 основывается на асинхронных запросах. Этот подход обеспечивает современное взаимодействие пользователей с приложением и позволяет избежать перезагрузок страницы.
Принцип работы асинхронных запросов можно описать следующим образом:
✅ Событие - Пользователь инициирует взаимодействие (например, нажимает кнопку или заполняет форму).
✅ Вызов функции запроса - В ответ на событие вызывается функция, отправляющая асинхронный запрос на сервер.
✅ Обращение в контроллер - Запрос обрабатывается на сервере в контроллере Laravel.
✅ Возврат ответа на клиент - Сервер возвращает данные, которые отображаются на клиенте без перезагрузки страницы.
Когда речь идет о реализации такого взаимодействия, разработчики часто сталкиваются с выбором между встроенным функционалом Inertia.js, библиотекой axios и API fetch.
Лично мне как-то ближе по душе axios )
Рассмотрим кратко каждый из этих подходов.
Практически вся разработка приложения на Laravel с использованием Inertia.js и Vue 3 основывается на асинхронных запросах. Этот подход обеспечивает современное взаимодействие пользователей с приложением и позволяет избежать перезагрузок страницы.
Принцип работы асинхронных запросов можно описать следующим образом:
✅ Событие - Пользователь инициирует взаимодействие (например, нажимает кнопку или заполняет форму).
✅ Вызов функции запроса - В ответ на событие вызывается функция, отправляющая асинхронный запрос на сервер.
✅ Обращение в контроллер - Запрос обрабатывается на сервере в контроллере Laravel.
✅ Возврат ответа на клиент - Сервер возвращает данные, которые отображаются на клиенте без перезагрузки страницы.
Когда речь идет о реализации такого взаимодействия, разработчики часто сталкиваются с выбором между встроенным функционалом Inertia.js, библиотекой axios и API fetch.
Лично мне как-то ближе по душе axios )
Рассмотрим кратко каждый из этих подходов.
Как-то Так
Асинхронные запросы в Laravel с Inertia.js и Vue 3
Как эффективно использовать асинхронные запросы в приложениях на Laravel с Inertia.js и Vue 3. Различные подходы, включая Inertia.js, axios и fetch на простом примере. / Экономика на простом – онлайн решения и web-разработка
👉 Продвижение молодого сайта-статейника за счёт сгенерированного контента ИИ несёт в себе нулевой SEO-эффект. 100% факт из практики.
Для коммерческих проектов, типа интернет-магазинов и всего остального, что связано с заработком денег, вообще сейчас никакой целесообразности нет в напихивании в них даже тематических статей, тем более от нейронки.
Для поисковиков, алгоритмы которых сейчас построены на том же ИИ, главным и первостепенным фактором в поисковой выдаче по органическим запросам являются реальная полезность ресурса (ключевые отличия от того, что уже есть на рынке) и актуальный рейтинг с настоящими отзывами по продвигаемой компании (организации).
☝️Поэтому, отдавая кому-либо на поруки своё начинание, особенно в высококонкурентной среде, имейте в виду этот факт - что реально добиться желаемого SEO-результата простым копипастом и генерацией статей через ИИ уже не получится.
Для коммерческих проектов, типа интернет-магазинов и всего остального, что связано с заработком денег, вообще сейчас никакой целесообразности нет в напихивании в них даже тематических статей, тем более от нейронки.
Для поисковиков, алгоритмы которых сейчас построены на том же ИИ, главным и первостепенным фактором в поисковой выдаче по органическим запросам являются реальная полезность ресурса (ключевые отличия от того, что уже есть на рынке) и актуальный рейтинг с настоящими отзывами по продвигаемой компании (организации).
☝️Поэтому, отдавая кому-либо на поруки своё начинание, особенно в высококонкурентной среде, имейте в виду этот факт - что реально добиться желаемого SEO-результата простым копипастом и генерацией статей через ИИ уже не получится.
👉 Интеграция Telegram-бота с использованием искусственного интеллекта на PHP
В наше время, когда цифровые помощники и автоматизация стали частью повседневной жизни, Telegram-боты помогают значительно упростить взаимодействие с клиентами и пользовательский опыт в целом.
С использованием OpenAI можно создать не просто стандартного бота, а настоящего интеллектуального ассистента, который понимает контекст запросов и может давать осмысленные ответы. Это руководство поможет вам разобраться, как шаг за шагом подключить искусственный интеллект к вашему боту, чтобы сделать его удобным, умным и современным инструментом для любых задач.
Простое для понимание руководство по разработке Telegram-бота с использованием PHP и подключением OpenAI API для интеллектуальных ответов.
В наше время, когда цифровые помощники и автоматизация стали частью повседневной жизни, Telegram-боты помогают значительно упростить взаимодействие с клиентами и пользовательский опыт в целом.
С использованием OpenAI можно создать не просто стандартного бота, а настоящего интеллектуального ассистента, который понимает контекст запросов и может давать осмысленные ответы. Это руководство поможет вам разобраться, как шаг за шагом подключить искусственный интеллект к вашему боту, чтобы сделать его удобным, умным и современным инструментом для любых задач.
Простое для понимание руководство по разработке Telegram-бота с использованием PHP и подключением OpenAI API для интеллектуальных ответов.
👉 Раньше, чтобы написать такую штуку, как
или ей подобную, надо было разбираться с регулярками, что было не так уж и просто.
Теперь с помощью ИИ такие задачи решаются за пару секунд.
Это говорит о том, что в голове нужно держать только нужную информацию, для решения своей основной задачи, а не забивать ее лишними вещами, которые легко решаются с помощью ИИ.
$link = preg_replace('/[^A-Za-z0-9]/', '', $link);
или ей подобную, надо было разбираться с регулярками, что было не так уж и просто.
Теперь с помощью ИИ такие задачи решаются за пару секунд.
Это говорит о том, что в голове нужно держать только нужную информацию, для решения своей основной задачи, а не забивать ее лишними вещами, которые легко решаются с помощью ИИ.
👉 На сколько прекрасен Cursor с AI
Ещё в далеком 2010 году моим любимым редактором кода был PHPDesigner, и я даже не мог представить альтернативу. Со временем перешёл на VS Code. В то время было непросто для меня перепрыгивать на что-то новое ) Но когда я начал работать с VS Code, ощутил на все 100% все преимущества этого редактора. Он просто потрясающий !
Теперь я влез в Cursor с ИИ, и это просто ОГОНЬ! Этот «умный» помощник сильно упрощает разработку.
Кажется, достаточно иметь классную идею и правильно сформулированный промпт - а всё остальное он сделает на все 100%! Конечно же, с непосредственным участием самого разработчика, потому что за процессом в любом случае нужно следить и корректировать!
Что поражает, так это то, что AI может вносить изменения во все файлы проекта, понимая его логику и код.
Технологии действительно шагнули вперёд!
Ещё в далеком 2010 году моим любимым редактором кода был PHPDesigner, и я даже не мог представить альтернативу. Со временем перешёл на VS Code. В то время было непросто для меня перепрыгивать на что-то новое ) Но когда я начал работать с VS Code, ощутил на все 100% все преимущества этого редактора. Он просто потрясающий !
Теперь я влез в Cursor с ИИ, и это просто ОГОНЬ! Этот «умный» помощник сильно упрощает разработку.
Кажется, достаточно иметь классную идею и правильно сформулированный промпт - а всё остальное он сделает на все 100%! Конечно же, с непосредственным участием самого разработчика, потому что за процессом в любом случае нужно следить и корректировать!
Что поражает, так это то, что AI может вносить изменения во все файлы проекта, понимая его логику и код.
Технологии действительно шагнули вперёд!
👉 В Cursor добавлена новая модель GPT-5
Это самая интеллектуальная модель из всех, которые мы тестировали, по заявлению самого Cursor. Установка агента GPT-5 предусмотрена для многих IDE.
Это самая интеллектуальная модель из всех, которые мы тестировали, по заявлению самого Cursor. Установка агента GPT-5 предусмотрена для многих IDE.
👉 Сейчас усиленно пилю свой проект Кадровик на Laravel+Vue по ТЗ, слепленному на лету. Тема очень актуальная. Приоритет — простота использования, ничего лишнего в интерфейсе, основное для решения задач участников – Нанимателя, HR-агентства и Соискателя.
Каждый день рождаются новые идеи, и приходится что-то менять и дорабатывать.
На фоне немалой конкуренции начинаю понимать, что неплохим конкурентным преимуществом будет внедрение ИИ на стороне Нанимателя для решения немаловажной задачи для него по анализу и отбору оптимальных кандидатов из перечня представленных претендентов от HR и самих соискателей.
Т.е., если на простом, задача ИИ-агента будет заключаться в следующем - в карточке одной из своих вакансий при нажатии Нанимателем кнопки "выбрать лучших из представленных", ИИ-модель проанализирует все резюме (PDF-файлы кандидатов) и представит лучшие с учетом требований работодателя по данной вакансии.
Каждый день рождаются новые идеи, и приходится что-то менять и дорабатывать.
На фоне немалой конкуренции начинаю понимать, что неплохим конкурентным преимуществом будет внедрение ИИ на стороне Нанимателя для решения немаловажной задачи для него по анализу и отбору оптимальных кандидатов из перечня представленных претендентов от HR и самих соискателей.
Т.е., если на простом, задача ИИ-агента будет заключаться в следующем - в карточке одной из своих вакансий при нажатии Нанимателем кнопки "выбрать лучших из представленных", ИИ-модель проанализирует все резюме (PDF-файлы кандидатов) и представит лучшие с учетом требований работодателя по данной вакансии.
👉 Сегодня реализовал очереди с драйвером хранилища Redis в своём проекте на Laravel. До этого как-то не приходилось с ними работать.
После того как GPT-5 внёс изменения в код, даю ему промпт следующего содержания для написания памятки(инструкции) по данному вопросу:
Даже роут отдельный подогнал под неё и во views шаблон запаковал.
Просто 🔥. А инструкцию надо делать обязательно для понимания той логики, которую он вносит относительно уже имеющегося кода.
Не представляю, как сейчас можно работать без этой IDE Cursor.
После того как GPT-5 внёс изменения в код, даю ему промпт следующего содержания для написания памятки(инструкции) по данному вопросу:
Опиши подробно, простыми словами, - как работает очередь в данном коде с отправкой телеграм-уведомлений при активации вакансии. Начни с того, в каком компоненте какая кнопка за это отвечает, куда дальше идет путь выполнения, на какой контроллер, сервис, фронтенд и т.д. и т.п. Подробно и понятно.И вот что мне этот красавчик выдал - https://kadrovik-pro.ru/telegram-instruction.
Даже роут отдельный подогнал под неё и во views шаблон запаковал.
Просто 🔥. А инструкцию надо делать обязательно для понимания той логики, которую он вносит относительно уже имеющегося кода.
Не представляю, как сейчас можно работать без этой IDE Cursor.
👉 Делаю сейчас лёгковесный и простой движок интернет-магазина с помощью Cursor AI.
Думаю, многим ИП и самозанятым, ремесленникам, из имеющиеся тяжеловесных решений — например, магазины на WordPress, OpenCart и т.п. — не так просты как в освоении, так и в администрировании.
Важно иметь лёгкий движок с самым необходимым функционалом: фильтры, валюты, модификации товаров, и при этом — простой в администрировании и с удобным UX для покупателей. И самое важное для них — отсутствие постоянного «доения» на поддержку всего этого дела.
Вот так и родилась идея реализации определённого оптимума на Laravel + Vue для широкой аудитории создателей в товарном бизнесе.
Когда доделаю — обязательно поделюсь готовым решением.
Думаю, многим ИП и самозанятым, ремесленникам, из имеющиеся тяжеловесных решений — например, магазины на WordPress, OpenCart и т.п. — не так просты как в освоении, так и в администрировании.
Важно иметь лёгкий движок с самым необходимым функционалом: фильтры, валюты, модификации товаров, и при этом — простой в администрировании и с удобным UX для покупателей. И самое важное для них — отсутствие постоянного «доения» на поддержку всего этого дела.
Вот так и родилась идея реализации определённого оптимума на Laravel + Vue для широкой аудитории создателей в товарном бизнесе.
Когда доделаю — обязательно поделюсь готовым решением.