Skip to content
🧿 Bolt 4 core
PHP HTML CSS Vue JavaScript Gherkin Other
Branch: master
Clone or download
Latest commit a2e6275 Sep 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update .github/github_labels.json Oct 23, 2018
assets Fix upload fields, token was broken Sep 17, 2019
bin Testing env with 1 simple test Jan 4, 2019
config Cleanup Sep 8, 2019
docker Enable Blackfire performance testing on Docker Jan 25, 2019
public Simplify "fields" a bit. Sep 11, 2019
src #625 empty password throws 500 Sep 18, 2019
templates Fix upload fields, token was broken Sep 17, 2019
tests Issue [#514](#514) Sep 17, 2019
translations Update messages.nl.xlf Sep 20, 2019
var fix gitignore test reports Feb 14, 2019
.babelrc Fix babel Nov 10, 2018
.editorconfig Namespace App -> Bolt Sep 10, 2018
.env.dist Working on translations Jan 30, 2019
.eslintrc.js Frontend app code clean-up Feb 1, 2019
.gitignore php-version file for local dev in gitignore Jul 11, 2019
.phpspec.yml Examples how to write Unit tests with 4 different ways Jan 8, 2019
.prettierrc Frontend app code clean-up Feb 1, 2019
.stylelintrc Frontend app code clean-up Feb 1, 2019
.travis.yml Update .travis.yml Sep 16, 2019
CONTRIBUTING.md Spring cleaning Sep 29, 2018
LICENSE Update year in LICENSE Nov 13, 2018
Makefile Remove test for non-existing component Jun 9, 2019
README.md Update README.md Sep 17, 2019
behat.yml Fields API Apr 18, 2019
composer.json Tweak Sep 16, 2019
docker-compose.yml relations: fix tests Feb 18, 2019
easy-coding-standard.yml Move Snippet to Widget\Injector Apr 21, 2019
package-lock.json Preparing release 4.0.0-beta3 Sep 13, 2019
package.json Preparing release 4.0.0-beta3 Sep 13, 2019
phpstan.neon [WIP] Related content Feb 18, 2019
phpunit.xml.dist Changes in Widgets Apr 21, 2019
postcss.config.js added New Encore version Nov 6, 2018
symfony.lock Tweak Sep 16, 2019
webpack.config.js Periodical NPM cleanup Apr 19, 2019

README.md

Bolt 4 - beta

Cleanse this world with flame
End this, cleanse this
Rebuild and start again
Obliterate what makes us weak

-- Hatebreed - Destroy Everything

Progress towards beta / stable

Follow the progress on Bolt 4, at the following locations

If you want to check out Bolt, the composer create-project method is recommended. See here: https://github.com/bolt/project/ . This repository should be used to work on Bolt. Not with Bolt.

To set up a running environment of Bolt 4 please perform the following steps 1 to 4:

1 Install

To install a development version of Bolt 4:

  • Check out this git repository
  • Then run:
composer install
npm install && npm run build

Alternatively, run make install, on a UNIX-like system.

Or install with Docker

To install Bolt 4 with Docker (for now, on a UNIX-like system):

  • Check out the git repo
  • Then run:
make docker-install

Actually, just add docker- prefix to any Make command and that's it!

When installed with Docker, in your browser go to http://0.0.0.0:8088/ for the frontend, and to http://0.0.0.0:8088/bolt for the Admin Panel.

2 Set up Database

  • Configure the database connection in .env or stick with the default SQLite, which should work out of the box.
  • Then run:
bin/console doctrine:database:create
bin/console doctrine:schema:create
bin/console doctrine:fixtures:load -n

Alternatively, run make db-create, on a UNIX-like system.

3 Re-set the Database

This is a Bolt prototype in flux, so stuff can break, and you might want to reset the database to the "factory settings". To re-set a database to the latest, with fresh dummy-content run the following:

bin/console doctrine:schema:drop --force
bin/console doctrine:schema:create
bin/console doctrine:fixtures:load -n

Alternatively, run make db-reset, on a UNIX-like system.

4 Run the prototype

  • Using the Symfony CLI tool, just run symfony server:start.

  • Alternatively, run bin/console server:start (if running bin/console server:startdoes not work because you don't have the pcntl extension, run bin/console server:run)

In your browser, go to http://127.0.0.1:8000/ for the frontend, and to http://127.0.0.1:8000/bolt for the Admin Panel.

You can log on, using the default user & pass:

  • user: admin
  • pass: admin%1

How to build assets

To set up initially, run npm install to get the required dependencies / node_modules. Then:

  • Run npm run start

See the other options by running npm run.

Code Style checking / Static Analysis

Run the following commands with make, to perform Code Style checking and automatic fixing:

  • make cscheck: Run ECS and PHPStan
  • make csfix: Run ECS, perform automatic fixes and run PHPStan

On windows, you can run the commands separately:

vendor/bin/ecs.bat check src
vendor/bin/ecs.bat check src --fix
vendor/bin/phpstan.bat analyse -c phpstan.neon src

Testing

Bolt uses several testing frameworks for different test layers:

  • unit: PHPSpec, PHPUnit, Jest
  • integration (of Symfony services): PHPUnit with KernelTestCase
  • functional (API Contracts): Behat
  • acceptance (UI, end-to-end): Kakunin

To run PHP unit tests:

make test

To run E2E tests:

make e2e

Fixing IDE issues

  • PHPStorm does not see @bolt Twig namespace.

    The namespace needs to be added manually in Twig Plugin settings, pointing to templates folder.

Translations

These are the translations used in Bolt. We rely on the community to expand on new translations, and keep them up to date. If you wish to participate, read the instructions here.

Several translation-related Console commands are available:

  • bin/console translation:download - Download translations from Loco (replaces all local ones)
  • bin/console translation:sync bolt down - Download translations from Loco (replaces local changes if there is a conflict)
  • bin/console translation:sync bolt up - Send updated translations to Loco
You can’t perform that action at this time.