https://github.com/stillat/php-package
A PHP package template for the NewUp generator.
https://github.com/stillat/php-package
Last synced: 3 months ago
JSON representation
A PHP package template for the NewUp generator.
- Host: GitHub
- URL: https://github.com/stillat/php-package
- Owner: Stillat
- License: mit
- Created: 2015-11-28T05:41:06.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-28T23:33:32.000Z (over 9 years ago)
- Last Synced: 2025-01-28T21:39:10.405Z (4 months ago)
- Language: PHP
- Size: 8.79 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# PHP Package
PHP Package is a template for the [NewUp](https://github.com/newup/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.
* [Installation](#installation)
* [General Usage](#usage)
* [Specifying a PHP Version](#phpv)
* [PSR-0 / PSR-4](#psr)
* [PHPUnit Integration](#phpunit)
* [TravisCI Integration](#travis)
* [License](#license)First, make sure you have [NewUp](https://github.com/newup/newup) installed and configured. Afterwards, you can run this command:
`newup template:install stillat/php-package`
NewUp will then install and configure everything it needs to internally for the `php-package` template.
After you have installed the `php-package` template, we are ready to create a new PHP Package:
`newup a stillat/php-package vendor/package `
In the above example, replace `vendor/package` with the vendor and package name of your new package (for example `stillat/php-package`) and replace `` with the directory you want the package to be created in.
Used with no options, PHP Package will create a directory/file structure similar to the following:
~~~
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.
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.
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.
You can specify a PHP version that your package requires by providing an extra parameter when generating your package:
`newup a stillat/php-package vendor/package `
By default, the PHP version is set to `>=5.5.9`.
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!):
`newup a stillat/php-package vendor/package ">=5.6"`
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:
| Autoloader | Value | Example |
|---|---|---|
| PSR-0 | `psr0` | `newup a stillat/php-package vendor/package --psr=psr0` |
| PSR-4 | `psr4` | `newup a stillat/php-package vendor/package --psr=psr4` |The PSR-4 autoloader is selected by default.
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:
~~~
/
│── src/
│ ├── Stillat/
│ │ ├────── Test/
├── composer.json
├── .gitignore
~~~This is different that when using the PSR-4 autoloader, as the `src/` directory would just be empty.
To enable PHPUnit support on your generated package, just add the "--phpunit" switch to the end of the command:
`newup a stillat/php-package vendor/package --phpunit`
The following additional directories/files will be created for you:
~~~
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).
The `phpunit.xml` file contains the configuration for PHPUnit. It is already configured with sensible defaults and features a customized test suite name.
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.
If you would like to rapidly configure TravisCI for your project, just add the `--travis` switch to the end of the command:
`newup a stillat/php-package vendor/package --travis`
You will see interactive prompts that will guide you through the configuration process. An example session might look something like this:
~~~
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] NWould 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] NWould 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] YWould 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] NWould you like to add a PHP version to test? [Y/n] N
~~~This would generate a `.travis.yml` file similar to the following:
~~~
language: phpphp:
- 5.5.9
- 5.6
- 7.0
- hhvmmatrix:
allow_failures:
- php: 7.0sudo: false
install: travis_retry composer install --no-interaction --prefer-source
~~~### TravisCI and PHPUnit
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:
`script: vendor/bin/phpunit`
Licensed under the MIT License. Enjoy!