Download the PHP package xwp/wp-dev-lib without Composer

On this page you can find all versions of the php package xwp/wp-dev-lib. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package wp-dev-lib

⚠️ This project is no longer maintained or supported!

This toolset was created before there were reliable ways of pulling in developer tools using Composer and npm. We now recommend adding linting and testing support by adding each tool as a developer dependency.


Common tools to facilitate the development and testing of WordPress themes and plugins.

Great for adding coding standards, linting and automated testing even to legacy projects since checks are applied to new code only by default.

Build Status

Install

Using Composer

which will place it under vendor/xwp/wp-dev-lib.

Using npm

which will place it under node_modules/xwp/wp-dev-lib. Lock it to a specific release version number by appending it to the package name xwp/wp-dev-lib#1.2.3 where 1.2.3 is the version number.

As Git Submodule

To update the library with the latest changes:

Configure

This tool comes with sample configuration files for the following linters:

Copy the files you need to the root directory of your project.

It is a best practice to install the various tools as dependencies in the project itself, pegging them at specific versions as required. This will ensure that the the tools will be repeatably installed across environments. When a tool is installed locally, it will be used instead of any globally-installed version.

Suggested Composer Packages

Add these as development dependencies to your project:

Automate

Locally with Git Hooks

This tool comes with a pre-commit hook which runs all linters, tests and checks before every commit to your project.

To add the hook with Composer we suggest to use brainmaestro/composer-git-hooks:

with the following configuration added to composer.json:

and two additional scripts that automatically setup the hooks during composer install:

With npm we suggest to use husky:

with the following script added to your package.json:

Alternatively, create a symlink at .git/hooks/pre-commit pointing to pre-commit using the bundled script:

To ensure that everyone on your team has the pre-commit hook added automatically, we recommend using the Composer or npm scripts as described above as the package managers will set up the pre-commit hook during the install phase.

Travis CI

Copy the sample-config/.travis.yml file into the root of your repo:

Note that the bulk of the logic in this config file is located in travis.after_script.sh.

Edit the .travis.yml to change the target PHP version(s) and WordPress version(s) you need to test for and also whether you need to test on multisite or not:

Having more variations here is good for open source plugins, which are free for Travis CI. However, if you are using Travis CI with a private repo you probably want to limit the jobs necessary to complete a build. So if your production environment is running PHP 5.5, is on the latest stable version of WordPress, and is not multisite, then your .travis.yml could just be:

This will greatly speed up the time build time, giving you quicker feedback on your pull request status, and prevent your Travis build queue from getting too backlogged.

Pre-commit Tips

The default behaviour for the linters is to only report errors on lines that are within actual staged changes being committed. So remember to selectively stage the files (via git add ...) or better the patches (via git add -p ...).

Skipping Checks

If you do need to disable the pre-commit hook for an extenuating circumstance (e.g. to commit a work in progress to share), you can use the --no-verify argument:

Alternatively, you can also selectively disable certain aspects of the pre-commit hook from being run via the DEV_LIB_SKIP environment variable. For example, when there is a change to a PHP file and there are PHPUnit tests included in a repo, but you've just changed a PHP comment or something that certainly won't cause tests to fail, you can make a commit and run all checks except for PHPUnit via:

You can string along multiple checks to skip via commas:

Naturally you'd want to create a Git alias for whatever you use most often, for example:

Which would allow you to then do the following (with Bash tab completion even):

Aside, you can skip Travis CI builds by including [ci skip] in the commit message.

Running Specific Checks

If you would like to run a specific check and ignore all other checks, then you can use DEV_LIB_ONLY environment variable. For example, you may want to only run PHPUnit before a commit:

Manually Invoking Pre-commit

Sometimes you may want to run the pre-commit checks manually to compare changes (patches) between branches much in the same way that Travis CI runs its checks. To compare the current staged changes against master, do:

To compare the committed changes between master and the current branch:

Limiting Scope of Checks

A barrier of entry for adding automated code quality checks to an existing project is that there may be a lot of issues in your codebase that get reported initially. So to get passing builds you would then have a major effort to clean up your codebase to make it conforming to PHP_CodeSniffer, JSHint, and other tools. This is not ideal and can be problematic in projects with a lot of activity since these changes will add lots of conflicts with others' pull requests.

To get around this issue, there is now an environment variable available for configuration: CHECK_SCOPE. By default its value is patches which means that when a pre-commit runs or Travis runs a build on a pull request or commit, the checks will be restricted in their scope to only report on issues occurring in the changed lines (patches). Checking patches is the most useful, but CHECK_SCOPE=changed-files can be added in the project config so that the checks will be limited to the entirety of any file that has been modified.

Also important to note that when the the pre-commit check runs, it will run the linters (PHPCS, JSHint, JSCS, etc) on the staged changes, not the files as they exist in the working tree. This means that you can use git add -p to interactively select changes to stage (which is a good general best practice in contrast to git commit -a), and any code excluded from being staged will be ignored by the linter. This is very helpful when you have some debug statements which you weren't intending to commit anyway (e.g. print_r() or console.log()).

With CHECK_SCOPE=patches and CHECK_SCOPE=changed-files available, it is much easier to integrate automated checks on existing projects that may have a lot of nonconforming legacy code. You can fix up a codebase incrementally line-by-line or file-by-file in the normal course of fixing bugs and adding new features.

If you want to disable the scope-limiting behavior, you can define CHECK_SCOPE=all.

Environment Variables

You may customize the behavior of the .travis.yml and pre-commit hook by specifying a .dev-lib (formerly .ci-env.sh) Bash script in the root of the repo, for example:

Set DEFAULT_BASE_BRANCH to be whatever your default branch is in GitHub; this is use when doing diff-checks on changes in a branch build on Travis CI. The PATH_INCLUDES is especially useful when the dev-lib is used in the context of an entire site, so you can target just the themes and plugins that you're responsible for. For excludes, you can specify a PHPCS_IGNORE var and override the .jshintignore; there is a PATH_EXCLUDES_PATTERN as well.

PHPUnit Code Coverage

The plugin-tailored phpunit.xml has a filter in place to restrict PHPUnit's code coverage reporting to only look at the plugin's own PHP code, omitting the PHP from WordPress Core and other places that shouldn't be included. The filter greatly speeds up PHPUnit's execution. To get the code coverage report written out to a code-coverage-report directory:

Then you can open up the index.html in that directory to learn about your plugin's code coverage.

Codeception

Bootstrap Codeception by:

Then update Acceptance tests configuration to reflect your own environment settings:

You can generate your first test, saved to tests/acceptance/WelcomeCept.php by:

Gitter

Create an empty .gitter file in the root of your repo and a Gitter chat badge will be added to your project's README.

Plugin Helpers

The library includes a WordPress README converter to Markdown, so you don't have to manually keep your readme.txt on WordPress.org in sync with the readme.md you have on GitHub. The converter will also automatically recognize the presence of projects with Travis CI and include the status image in the markdown. Screenshots and banner images for WordPress.org are also automatically incorporated into the readme.md.

What is also included in this repo is an svn-push to push commits from a GitHub repo to the WordPress.org SVN repo for the plugin. The /assets/ directory in the root of the project will get automatically moved one directory above in the SVN repo (alongside trunk, branches, and tags). To use, include an svn-url file in the root of your repo and let this file contains he full root URL to the WordPress.org repo for plugin (don't include trunk).

Contribute

See the contributor documentation.

Credits

See all contributors.

The utilities in this project were first developed to facilitate development of XWP's plugins.


All versions of wp-dev-lib with dependencies

PHP Build Version
Package Version
No informations.
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package xwp/wp-dev-lib contains the following files

Loading the files please wait ....