loonpwn / wp-keystone
Wordpress Keystone is a WordPress boilerplate designed for quickly building effective twelve-factor applications
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 3
Forks: 0
Open Issues: 0
Type:boilerplate
Requires
- php: >=7.1
- brainmaestro/composer-git-hooks: ^2.4
- composer/installers: ^1.4.0
- johnpbloch/wordpress: ^4.9.5
- oscarotero/env: ^1.1.0
- roots/sage-lib: ~9.0.0-beta.4
- roots/wp-password-bcrypt: ^1.0.0
- vlucas/phpdotenv: ^2.4.0
Requires (Dev)
- behat/mink: ^1.7.1
- behat/mink-goutte-driver: ^1.2
- behat/mink-selenium2-driver: ^1.3.1
- paulgibbs/behat-wordpress-extension: ^0.9.0
- squizlabs/php_codesniffer: ^3.1.0
- wpackagist-plugin/check-email: ^0.5.5
- wpackagist-plugin/duplicate-post: ^3.2.2
- wpackagist-plugin/easy-development: ^1.0.5
- wpackagist-plugin/query-monitor: ^3.0.0
- wpackagist-plugin/wp-sweep: ^1.0
This package is auto-updated.
Last update: 2024-10-14 19:00:46 UTC
README
Wordpress Keystone is a WordPress boilerplate designed for quickly building effective twelve-factor applications
Why WordPress Keystone?
- Development environment ready to go with docker
- Asset building with Laravel Mix
- Component / action design at the core
- Sane assumptions about how you want to use it
WordPress Keystone is the combination of many libraries, taking inspiration and straight code from them. If you are confused on how some of the parts of this project work, checkout the following projects:
- Laradock - Docker
- Sage - Architecture
- Bedrock - Architecture
- Laravel components - Laravel packages
- WP Function Me - Random snippets
- Composer Git Hooks - Workflow triggers
- Laravel Mix - Asset Builds
Project Structure
app
- Project functionality
app/components
- This is the bread and butter of the boilerplate. All your code you would usually stick
in functions.php
lives here. WordPress Keystone wil automatically parse folders within the components
folder
and have the files contained loaded under their wordpress filter or hook.
This forces developers to think about when there code is being executed within the WordPress runtime.
config
- All application configuration is found here including constant definition and bootstrapping
env
- Environment based files. Mainly docker configuration and tools are found within here.
resources
- Most importantly, your view files are found here as well as styles and scripts.
runtime
- Any application runtime files live here, besides uploads.
web
- This is your web root. Avoid putting anything in here if you can.
Setup
Boilerplate Instructions
Install: composer create-project loonpwn/wp-keystone project-name
First Run a search and replace for the following:
- Your site url:
local.wp-keystone
-> local.your-domain - Your project title:
Wordpress Keystone
-> Your Project Name - Your project slug:
wp-keystone
-> your-project-slug
Then delete this section from the readme.
Instructions
Note: this project uses docker for all its local development.
Local Setup
-
Copy over the env file
cp -n .env.example .env
-
Copy over the htaccess
cp -n web/.htaccess.sample web/.htaccess
-
Build & docker containers
docker-compose up -d
Note: If you are already running apache or mysql on ports 80 / 3306, you can change the ports docker runs on in the
.env
file, otherwise close your other applications -
Setup your hosts file.
sudo sh -c 'echo "127.0.0.1 local.wp-keystone" >> /etc/hosts'
-
Mount yourself to the workspace
./env/mount-workspace.sh
-
Run the deployment script
composer build
-
Install WordPress
wp core install --url=local.wp-keystone --title="WordPress Keystone" --admin_user="wp-keystone" --admin_email="admin@local.wp-keystone"
Note: This command will output the admin password
-
Done. You can visit the site at
http://local.wp-keystone
.Note: Admin login is at
http://local.wp-keystone/wp/wp-admin
and login withwp-keystone
. The local environment does not check for a valid password so you can enter in anything.
Development
Docker
This project uses a docker container which will host our site for us and be able to build all of our assets for us. Some useful commands:
docker-compose restart
- Restart the container./env/mount-workspace.sh
- Attach yourself to the workspace container