Wallogit.com
2017 © Pedro Pelรกez
A starting point for basic PHP packages. Allows configuration of PHPUnit and TravisCI
PHP Package is a template for the NewUp package generator. The NewUp generator is a general-purpose tool for creating things from templates; PHP Package is a template that provides you with a starting point for your PHP projects., (*1)
First, make sure you have NewUp installed and configured. Afterwards, you can run this command:, (*3)
newup template:install stillat/php-package, (*4)
NewUp will then install and configure everything it needs to internally for the php-package template., (*5)
After you have installed the php-package template, we are ready to create a new PHP Package:, (*7)
newup a stillat/php-package vendor/package <output_directory>, (*8)
In the above example, replace vendor/package with the vendor and package name of your new package (for example stillat/php-package) and replace <output_directory> with the directory you want the package to be created in., (*9)
Used with no options, PHP Package will create a directory/file structure similar to the following:, (*10)
src/ .gitignore composer.json
The src/ directory is where you will create your new package/library. It is empty so you have a fresh starting point. This directory will be autoloaded by Composer using the psr-0 autoloader., (*11)
The .gitignore file contains quite a few options set for you by default, with instructions on how to remove configured options and where to find more., (*12)
The composer.json file is your standard composer.json file. If you configured NewUp with your name and email address, the authors field will already be filled in for you., (*13)
You can specify a PHP version that your package requires by providing an extra parameter when generating your package:, (*15)
newup a stillat/php-package vendor/package <output_directory> <php_version>, (*16)
By default, the PHP version is set to >=5.5.9., (*17)
For example, we could easily state that our package needs at least PHP 5.6 when creating our package (pay special attention to the quotes!):, (*18)
newup a stillat/php-package vendor/package <output_directory> ">=5.6", (*19)
You can choose which autoloader to use by supplying a value for the --psr option. The following table lists the valid values you can use:, (*21)
| Autoloader | Value | Example |
|---|---|---|
| PSR-0 | psr0 |
newup a stillat/php-package <output_dir> vendor/package --psr=psr0 |
| PSR-4 | psr4 |
newup a stillat/php-package <output_dir> vendor/package --psr=psr4 |
The PSR-4 autoloader is selected by default., (*22)
When choosing to use the PSR-0 autoloader, directory scaffolding will automatically be created for you. For example, if the package name was stillat/test, the following directory structure would be created when using the PSR-0 autoloader:, (*23)
<output_directory>/ โโโ src/ โ โโโ Stillat/ โ โ โโโโโโโ Test/ โโโ composer.json โโโ .gitignore
This is different that when using the PSR-4 autoloader, as the src/ directory would just be empty., (*24)
To enable PHPUnit support on your generated package, just add the "--phpunit" switch to the end of the command:, (*26)
newup a stillat/php-package vendor/package <output_directory> --phpunit, (*27)
The following additional directories/files will be created for you:, (*28)
tests/ tests/ExampleTest.php phpunit.xml
The tests/ directory will be where your tests will live. An example test (tests/ExampleTest.php is already included in this directory (this can be safely deleted)., (*29)
The phpunit.xml file contains the configuration for PHPUnit. It is already configured with sensible defaults and features a customized test suite name., (*30)
In addition to creating new directories and files for you, opting in to PHPUnit integration will also update your generated composer.json file to include mockery/mockery and phpunit/phpunit automatically., (*31)
If you would like to rapidly configure TravisCI for your project, just add the --travis switch to the end of the command:, (*33)
newup a stillat/php-package vendor/package <output_directory> --travis, (*34)
You will see interactive prompts that will guide you through the configuration process. An example session might look something like this:, (*35)
Would you like to add a PHP version to test? [Y/n] Y Which PHP version would you like to test? 5.5.9 Do you want to allow failures for PHP version 5.5.9? [y/N] N Would you like to add a PHP version to test? [Y/n] Y Which PHP version would you like to test? 5.6 Do you want to allow failures for PHP version 5.6? [y/N] N Would you like to add a PHP version to test? [Y/n] Y Which PHP version would you like to test? 7.0 Do you want to allow failures for PHP version 7.0? [y/N] Y Would you like to add a PHP version to test? [Y/n] Y Which PHP version would you like to test? hhvm Do you want to allow failures for PHP version hhvm? [y/N] N Would you like to add a PHP version to test? [Y/n] N
This would generate a .travis.yml file similar to the following:, (*36)
language: php
php:
- 5.5.9
- 5.6
- 7.0
- hhvm
matrix:
allow_failures:
- php: 7.0
sudo: false
install: travis_retry composer install --no-interaction --prefer-source
If you specify both the --travis and the --phpunit flags, the following script will be added to the end of your .travis.yml file automatically for you:, (*37)
script: vendor/bin/phpunit, (*38)
Licensed under the MIT License. Enjoy!, (*40)