Заметки в категории «Программирование»
Публикуются записи, напрямую связанные с программированием на PHP, JavaScript, алгоритмы, проблемы и их решения, создание, тестирование, отладка и обслуживание исходного кода.
Публикуются записи, напрямую связанные с программированием на PHP, JavaScript, алгоритмы, проблемы и их решения, создание, тестирование, отладка и обслуживание исходного кода.
В основном я работаю с WordPress, но в скором времени мне предстоит поработать с несколькими проектами, которые потребуют более индивидуального подхода к созданию приложений. Поэтому я буду использовать Laravel.
Первый шаг для любого проекта — это локальная настройка. Если вы похожи на меня, вам нравится все организовывать и стараться не допускать излишеств.
Для локальной разработки это означает использование одного решения, чтобы максимально упростить настройку и работу над новыми проектами. Хотя раньше я использовал ScotchBox, VVV и WP Local Docker, сейчас я постоянно использую Local от Flywheel. Его легко запустить, он удобен для нашей команды, а если вы хотите попробовать что-то вроде Laravel или Craft, вы можете легко подключить эти фреймворки.
Вот как я делаю это с помощью Laravel…
Добавление сайта в Local
Сначала вы создаете сайт, как это обычно делается в Local:
При желании вы можете быстро добавить SSL-сертификат. Обычно мы так и делаем, поскольку все веб-сайты и приложения будут защищены при запуске в продакшн.
Установка Laravel и новый Laravel проект
Этот шаг требует, чтобы Composer был установлен в вашей системе глобально. Инструкции по этому вопросу вы можете найти по ссылке. Сначала сделайте это.
После установки Composer вы можете следовать инструкциям по установке, чтобы также установить Laravel глобально. Их можно найти здесь, но основная команда будет такой:
Примечание: Вам нужно запустить вышеуказанную команду (и все php artisan
команды) с локальной машины. Для этого в локальном приложении щелкните правой кнопкой мыши на новом сайте Laravel и выберите «Open Site Shell». Если вы перейдете в каталог laravel/app
, вы сможете выполнить эти команды.
После глобальной установки Larvel вы можете сделать следующее:
Это создаст новый проект Laravel в каталоге app
и включит в него публичную папку, в которой Local обычно его ищет.
Теперь вы можете нажать «Просмотр сайта» в приложении Local, и оно должно показать вам страницу приветствия Laravel, например, по адресу https://laravel.local. Если вы получаете 502, 404 или какую-то другую ошибку, возможно, вам нужно перезапустить сервер:
Если вы получите требование о минимальной версии PHP
Временное решение. Надеюсь, я скоро удалю это, но Local включает поддержку PHP только до 8.0.0, а текущие зависимости Laravel требуют PHP 8.0.2.
Итак, если на главной странице вы видите фатальную ошибку, которая говорит Your Composer dependencies require a PHP version ">= 8.0.2"
, вы можете применить одно из двух решений:
1. Согласно документации по Composer, вы должны эмулировать ваше PHP-окружение в файле composer.json
следующим образом:
Это добавляет спуф к вашей платформе, так что даже если на самом деле вы не используете PHP 8.0.2, он будет устанавливать зависимости как таковые.
2. Удалите папку vendor
и выполните:
Очевидно, что это временное решение, которое поможет вам начать работу, но как только Local получит более высокую поддержку PHP 8, я удалю это. Следите за новостями в этой теме.
Соединение с базой данных
В файле .env
вы можете заменить следующие учетные данные (при условии, что вы не изменили стандартные настройки Local by Flywheel:
Вышеописанные данные помогут подключится к локальной БД. Если вы откроете свою базу данных с помощью Dbeaver, вы сможете удалить стандартные таблицы с префиксом wp_
.
Наконец, вы можете запустить базу данных Laravel с помощью команды:
После выполнения этой команды вы можете обновить базу данных в Table+ или SequelPro или MySQL Workbench , но я крайне рекомендую профессиональную, бесплатную, опенсорсную утилиту DBeaver.
И вот вы уже работаете с Laravel на Local от Flywheel.
Создание эффективных коммитов — отличительная черта опытных разработчиков. Принятие спецификации «Conventional Commits» (Соглашение о коммитах) служит маяком для структурирования коммитов.
После устройства на новое место работы мне был выдан корпоративный email и доступы в закрытый репозиторий компании, который, само собой, не совпадает с вашим личным почтовым ящиком.
Tempest – PHP MVC микро-фреймворк, который не мешает вам работать.
В этом руководстве мы рассмотрим, как можно запустить GitHub Action с помощью HTTP-запроса, используя команду curl.
Twitter Bootstrap — самый популярный CSS-фреймворк. У него более 165к звезд и 79к форков на GitHub.
В одной из своих предыдущих статей я показал, как развернуть проект на VPS-сервере с помощью CircleCI. В этой статье я покажу, как проделать аналогичный процесс, но только используя Github Actions.
Если вы, как и я, любите порядок во всём, то могу порекомендовать пакет composer-normalize, который помогает поддерживать ключи composer.json в соответствии со схемой schema.json.
Тестирование предупреждений (warnings), передаваемых через trigger_error
, вызывает предупреждение об устаревании в PHPUnit 9+.
В этом руководстве мы рассмотрим, как переопределять классы с помощью Composer.
Как это работат, изменение привелегий, кастомизация.
Изначально я хотел написать общий пост о PHP генераторах, функции, появившейся в PHP 5.5.
Если вы используете PHPUnit для запуска множества тестов, каждый из которых определяет константы, то вы можете столкнуться с ошибкой «Constant CONSTANT_NAME Already Defined» при попытке запустить их вместе.
Composer второй версии даёт прирост по производительности почти на 50% по сравнению с первой версией, поэтому обновить его рекомендую каждому разработчику.
В одном из чатов поддержки WordPress прозвучал простой, на первый взгляд, вопрос: «В чем отличие команды composer install
от команды composer update
«, на который я постараюсь ответить как можно подробнее.
Статические анализаторы кода (PHPStan, Psalm, Phan) просто читают код и пытаются найти в нём ошибки.
На GitHub есть одна очень полезная штука, про которую многие не знают — это возможность слинковать issue с pull request или отметить issue или pull request как дубликат или закрыть issue автоматически при помощи ключевых слов.
GRASP (general responsibility assignment software patterns) — общие шаблоны распределения ответственностей.
Качественный дизайн обладает слабой связанностью (low coupling) и сильной связностью (high cohesion).
В этом руководстве я покажу, как использовать API, который нам предлагает GitHub через свой токен, чтобы применить Action для непрерывного развертывания приватных репозиториев.
Во время работы над сайтом Delicious Brains у нас возникла необходимость хранения некоторых метаданных о произвольном типе записей (CPT).
Глубокое понимание патерна «dependency injection» — очень важная вещь для крутого разработчика.
Состояние гонки или опасность гонки — это состояние электроники, программного обеспечения или другой системы, в котором основное поведение системы зависит от последовательности или времени других неконтролируемых событий.
Поставить ссылку на Skype клиент на первый взгдяд весьма простая задача. Но не все так просто, как может показаться на первый взгляд.
Библиотека husky может предотвращать плохие git commit
, git push
и еще что-то).
Часто при написании тестов необходимо протестировать внешнюю функцию или функцию, которая встроена в php.
Объект абстрактного класса мы не можем создать напрямую. Поэтому работать с ним будем через stub
. Что такое stub
можно прочитать в статье про Модульное тестирование.
Если вам понадобился данный трюк, то, скорее всего, вы имеете проблему в архитектуре вашего класса/приложения. Его использование — это крайняя мера.