Осилятор СИКП — сервис, в котором есть рейтинг тех, кто проходит СИКП, и каждый отмечает, что он прошёл.
- Обсуждение в канале #hexlet-volunteers слака http://slack-ru.hexlet.io
Проверить зависимости PHP можно командой composer check-platform-reqs
- PHP ^7.4
- Extensions:
- bcmath
- curl
- dom
- exif
- fileinfo
- filter
- json
- libxml
- mbstring
- openssl
- pcre
- PDO
- pgsql
- Phar
- SimpleXML
- sqlite3
- tokenizer
- xml
- xmlwriter
- zip
- Composer
- Node.js (v13.11+) & NPM (6.13+)
- SQLite for local, PostgreSQL for production
- heroku cli Как развернуть приложение на Heroku
Setup или Setup in docker
$ make setup
$ make start # start server http://127.0.0.1:8000/
$ make test # run tests
- Установить зависимости и подготовить конфигурационный файл
$ make env-prepare
$ make install
$ make key
- Указать параметры подключения к БД в файле .env
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=54320
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
- Запустить контейнер с БД и сгенерировать записи
$ make compose-postgres-start
$ make config-clear
$ make db-prepare
- Запустить локальный веб-сервер
$ make start
- Подготовить
.env
файл
$ make env-prepare
- Указать параметры подключения к БД в файле
.env
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=hexlet_sicp_development
DB_USERNAME=postgres
DB_PASSWORD=secret
DB_SCHEMA=public
- Собрать и запустить приложение
$ make compose-setup # build project
$ make compose-start # start server http://127.0.0.1:8000/
$ make compose-bash # start bash session inside docker container
$ make test # run tests inside docker container
- Пулреквесты должны быть настолько маленькими, насколько это возможно с точки зрения здравого смысла
- Весь код должен соответствовать стандартам кодирования PSR и Laravel
- Пулреквест должен проходить все проверки
- Все экшены контроллеров должны быть покрыты тестами
- Формы делаются с помощью netojose/laravel-bootstrap-4-forms
- В подавляющем большинстве используется ресурсный роутинг. Что под него не подходит, сначала обсуждается (такое бывает крайне редко)
- Тексты только через локали
- Чтобы включить логирование Rollbar, необходимо установить переменную
LOG_CHANNEL=rollbar
иROLLBAR_TOKEN=
(docs) - Чтобы добавить упражнение, необходимо добавить его содержимое (код или картинка) по пути
resources/views/exercise/listing/#_#.blade.php
, а текстовое описание вresources/lang/{locale}/sicp.php
под ключемexercises.#.#
на соответствующем языке. - Для генераций файлов-помощников (для автодополнения) используйте
make ide-helper
- Изучите список доступных команд
php artisan
!
Зарегистрируйте приложение на GitHub (подробнее https://developer.github.com/apps/about-apps/). Для этого:
- В меню учетной записи GitHub выберите пункт “Settings”
- В открывшемся окне в панели навигации, справа, выберите “GitHub Apps”, затем нажмите кнопку “New GitHub App”
- В открывшейся форме в поле "GitHub App name" введите название приложения (например, Hexlet-SICP)
- В поле Homepage URL - адрес ресурса (например, https://hexlet-sicp.herokuapp.com)
- В поле "User authorization callback URL" введите полный URL-адрес для перенаправления после того, как пользователь авторизует приложение на GitHub. (например, https://hexlet-sicp.herokuapp.com/oauth/github/callback)
- В поле "Webhook URL" укажите URL-адрес, по которому будут отправляться события (например, https://hexlet-sicp.herokuapp.com/oauth/github/callback)
- Откройте права на получение информации о e-mail пользователя (User permissions->Email addresses->Read only)
- Сохраните данные регистрации приложения (кнопка "Create GitHub App")
- На открывшейся странице приложения скопируйте Client ID и Client secret
- Cгенерируйте закрытый ключ (кнопка Generate a private key)
В случае деплоя на Heroku, задайте переменные окружения для развернутого приложения. Для этого:
- Перейдите на вкладку "Settings"
- В настройке "Config Vars" добавьте переменные GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET и GITHUB_URL_REDIRECT указав для них соответвенно значения Client ID, Client secret и User authorization callback URL
- После чего выпольните сброс кеша конфигурации:
heroku run php artisan config:cache
- Создать отдельную тестовую базу postgres.
Настройки параметров подключения можно посмотреть в секцииpgsql_test
конфигурацииconfig/database.php
Пример создания тестовой базы "с нуля":
sudo apt install postgresql
sudo -u postgres createuser --createdb $(whoami)
sudo -u postgres createuser hexlet_sicp_test_user
sudo -u postgres psql -c "ALTER USER hexlet_sicp_test_user WITH ENCRYPTED PASSWORD 'secret'"
createdb hexlet_sicp_test
- Запустить тесты с альтернативным профилем
DB_CONNECTION=pgsql_test make test
$ git config core.hooksPath .githooks
This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet (in Russian).
Q: Ошибка Illuminate\Session\TokenMismatchException: CSRF token mismatch.
A: Сбросить кеш конфига php artisan config:clear