-
Notifications
You must be signed in to change notification settings - Fork 138
Composer
In general, this file shouldn't look all that different from our package.json
file or other config files found in the theme.
In this config, we're specifying PHP 7.4 and Composer 2.0 while tapping into a handful of plugins to allow for our scripts to run:
wd_s uses Composer to run a few different processes:
This is what our Composer file looks like:
{
"name": "webdevstudios/wd_s",
"description": "A starter theme from WebDevStudios.",
"type": "wordpress-theme",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "WebDevStudios",
"email": "contact@webdevstudios.com"
}
],
"config": {
"platform": {
"php": "7.4"
},
"allow-plugins": {
"composer/installers": true,
"dealerdirect/phpcodesniffer-composer-installer": true
}
},
"require": {
"composer/installers": "^2.0.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"phpcompatibility/phpcompatibility-wp": "^2.1.1",
"wp-cli/wp-cli-bundle": "^2.5.0",
"wp-coding-standards/wpcs": "^2.3.0"
},
"scripts": {
"format": "phpcbf --report=summary,source",
"lint": "phpcs --report=summary,source",
"pot": "wp i18n make-pot . build/languages/_s.pot --exclude=node_modules,vendor,build --allow-root"
}
}
In our package.json
file, lint:php
taps into Composer by running composer run-script lint
. In doing so, we're looking for any issues found in our PHP issues related to coding standards. As this is a WordPress theme, we default to WordPress coding standards to keep in line with WordPress' overall goals for code quality.
PHP Code Sniffer will also find any warnings or breaking errors in your PHP, so if you forget to add that semicolon or have some code that may be prone to security or performance issues, PHPCS will let you know.
As part of our Lefthook configuration, all code is linted in a pre-commit hook so the chance of committing code with formatting issues should be low.
In our package.json
file, format:php
taps into Composer by running composer run-script format
. In doing so, we're fixing any PHP issues that are able to be fixed automatically. You may still have linting errors or breaking errors in your PHP if the issues are too complex for PHPCBF to fix by itself, but the majority of coding standards issues should be taken care of here.
As part of our Lefthook configuration, all code is formatted in a pre-commit hook so the chance of committing code with formatting issues should be low.
Of course, you've written your theme to be translatable into other languages. In our package.json
file, build:pot
taps into Composer by running composer run-script pot
. In doing so, we're building the .pot
file for our theme. This is the language file which contains the strings in your base language which can then be translated into other languages.