-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Samuel Xavier
committed
Aug 30, 2019
0 parents
commit bcabbdb
Showing
38 changed files
with
6,094 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
.idea | ||
composer.phar | ||
clover.xml | ||
coveralls-upload.json | ||
phpunit.xml | ||
vendor/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
Copyright (c) 2015-2018, Zend Technologies USA, Inc. | ||
|
||
All rights reserved. | ||
|
||
Redistribution and use in source and binary forms, with or without modification, | ||
are permitted provided that the following conditions are met: | ||
|
||
- Redistributions of source code must retain the above copyright notice, this | ||
list of conditions and the following disclaimer. | ||
|
||
- Redistributions in binary form must reproduce the above copyright notice, this | ||
list of conditions and the following disclaimer in the documentation and/or | ||
other materials provided with the distribution. | ||
|
||
- Neither the name of Zend Technologies USA, Inc. nor the names of its | ||
contributors may be used to endorse or promote products derived from this | ||
software without specific prior written permission. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | ||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
# Expressive Skeleton and Installer | ||
|
||
[![Build Status](https://secure.travis-ci.org/zendframework/zend-expressive-skeleton.svg?branch=master)](https://secure.travis-ci.org/zendframework/zend-expressive-skeleton) | ||
[![Coverage Status](https://coveralls.io/repos/github/zendframework/zend-expressive-skeleton/badge.svg?branch=master)](https://coveralls.io/github/zendframework/zend-expressive-skeleton?branch=master) | ||
|
||
*Begin developing PSR-15 middleware applications in seconds!* | ||
|
||
[zend-expressive](https://github.com/zendframework/zend-expressive) builds on | ||
[zend-stratigility](https://github.com/zendframework/zend-stratigility) to | ||
provide a minimalist PSR-15 middleware framework for PHP with routing, DI | ||
container, optional templating, and optional error handling capabilities. | ||
|
||
This installer will setup a skeleton application based on zend-expressive by | ||
choosing optional packages based on user input as demonstrated in the following | ||
screenshot: | ||
|
||
![screenshot-installer](https://cloud.githubusercontent.com/assets/459648/10410494/16bdc674-6f6d-11e5-8190-3c1466e93361.png) | ||
|
||
The user selected packages are saved into `composer.json` so that everyone else | ||
working on the project have the same packages installed. Configuration files and | ||
templates are prepared for first use. The installer command is removed from | ||
`composer.json` after setup succeeded, and all installer related files are | ||
removed. | ||
|
||
## Getting Started | ||
|
||
Start your new Expressive project with composer: | ||
|
||
```bash | ||
$ composer create-project zendframework/zend-expressive-skeleton <project-path> | ||
``` | ||
|
||
After choosing and installing the packages you want, go to the | ||
`<project-path>` and start PHP's built-in web server to verify installation: | ||
|
||
```bash | ||
$ composer run --timeout=0 serve | ||
``` | ||
|
||
You can then browse to http://localhost:8080. | ||
|
||
> ### Linux users | ||
> | ||
> On PHP versions prior to 7.1.14 and 7.2.2, this command might not work as | ||
> expected due to a bug in PHP that only affects linux environments. In such | ||
> scenarios, you will need to start the [built-in web | ||
> server](http://php.net/manual/en/features.commandline.webserver.php) yourself, | ||
> using the following command: | ||
> | ||
> ```bash | ||
> $ php -S 0.0.0.0:8080 -t public/ public/index.php | ||
> ``` | ||
> ### Setting a timeout | ||
> | ||
> Composer commands time out after 300 seconds (5 minutes). On Linux-based | ||
> systems, the `php -S` command that `composer serve` spawns continues running | ||
> as a background process, but on other systems halts when the timeout occurs. | ||
> | ||
> As such, we recommend running the `serve` script using a timeout. This can | ||
> be done by using `composer run` to execute the `serve` script, with a | ||
> `--timeout` option. When set to `0`, as in the previous example, no timeout | ||
> will be used, and it will run until you cancel the process (usually via | ||
> `Ctrl-C`). Alternately, you can specify a finite timeout; as an example, | ||
> the following will extend the timeout to a full day: | ||
> | ||
> ```bash | ||
> $ composer run --timeout=86400 serve | ||
> ``` | ||
## Troubleshooting | ||
If the installer fails during the ``composer create-project`` phase, please go | ||
through the following list before opening a new issue. Most issues we have seen | ||
so far can be solved by `self-update` and `clear-cache`. | ||
1. Be sure to work with the latest version of composer by running `composer self-update`. | ||
2. Try clearing Composer's cache by running `composer clear-cache`. | ||
If neither of the above help, you might face more serious issues: | ||
- Info about the [zlib_decode error](https://github.com/composer/composer/issues/4121). | ||
- Info and solutions for [composer degraded mode](https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode). | ||
## Application Development Mode Tool | ||
This skeleton comes with [zf-development-mode](https://github.com/zfcampus/zf-development-mode). | ||
It provides a composer script to allow you to enable and disable development mode. | ||
### To enable development mode | ||
**Note:** Do NOT run development mode on your production server! | ||
```bash | ||
$ composer development-enable | ||
``` | ||
**Note:** Enabling development mode will also clear your configuration cache, to | ||
allow safely updating dependencies and ensuring any new configuration is picked | ||
up by your application. | ||
### To disable development mode | ||
```bash | ||
$ composer development-disable | ||
``` | ||
### Development mode status | ||
```bash | ||
$ composer development-status | ||
``` | ||
## Configuration caching | ||
By default, the skeleton will create a configuration cache in | ||
`data/config-cache.php`. When in development mode, the configuration cache is | ||
disabled, and switching in and out of development mode will remove the | ||
configuration cache. | ||
You may need to clear the configuration cache in production when deploying if | ||
you deploy to the same directory. You may do so using the following: | ||
```bash | ||
$ composer clear-config-cache | ||
``` | ||
You may also change the location of the configuration cache itself by editing | ||
the `config/config.php` file and changing the `config_cache_path` entry of the | ||
local `$cacheConfig` variable. | ||
## Skeleton Development | ||
This section applies only if you cloned this repo with `git clone`, not when you | ||
installed expressive with `composer create-project ...`. | ||
If you want to run tests against the installer, you need to clone this repo and | ||
setup all dependencies with composer. Make sure you **prevent composer running | ||
scripts** with `--no-scripts`, otherwise it will remove the installer and all | ||
tests. | ||
```bash | ||
$ composer update --no-scripts | ||
$ composer test | ||
``` | ||
Please note that the installer tests remove installed config files and templates | ||
before and after running the tests. | ||
Before contributing read [the contributing guide](docs/CONTRIBUTING.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<?php | ||
/** | ||
* Script for clearing the configuration cache. | ||
* | ||
* Can also be invoked as `composer clear-config-cache`. | ||
* | ||
* @see https://github.com/zendframework/zend-expressive-skeleton for the canonical source repository | ||
* @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com) | ||
* @license https://github.com/zendframework/zend-expressive-skeleton/blob/master/LICENSE.md New BSD License | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
chdir(__DIR__ . '/../'); | ||
|
||
require 'vendor/autoload.php'; | ||
|
||
$config = include 'config/config.php'; | ||
|
||
if (! isset($config['config_cache_path'])) { | ||
echo "No configuration cache path found" . PHP_EOL; | ||
exit(0); | ||
} | ||
|
||
if (! file_exists($config['config_cache_path'])) { | ||
printf( | ||
"Configured config cache file '%s' not found%s", | ||
$config['config_cache_path'], | ||
PHP_EOL | ||
); | ||
exit(0); | ||
} | ||
|
||
if (false === unlink($config['config_cache_path'])) { | ||
printf( | ||
"Error removing config cache file '%s'%s", | ||
$config['config_cache_path'], | ||
PHP_EOL | ||
); | ||
exit(1); | ||
} | ||
|
||
printf( | ||
"Removed configured config cache file '%s'%s", | ||
$config['config_cache_path'], | ||
PHP_EOL | ||
); | ||
exit(0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
{ | ||
"name": "zendframework/zend-expressive-skeleton", | ||
"description": "Zend expressive skeleton. Begin developing PSR-15 middleware applications in seconds!", | ||
"type": "project", | ||
"homepage": "https://github.com/zendframework/zend-expressive-skeleton", | ||
"license": "BSD-3-Clause", | ||
"keywords": [ | ||
"skeleton", | ||
"middleware", | ||
"psr", | ||
"psr-7", | ||
"psr-11", | ||
"psr-15", | ||
"zf", | ||
"zendframework", | ||
"zend-expressive" | ||
], | ||
"config": { | ||
"sort-packages": true | ||
}, | ||
"extra": { | ||
"zf": { | ||
"component-whitelist": [ | ||
"zendframework/zend-expressive", | ||
"zendframework/zend-expressive-helpers", | ||
"zendframework/zend-expressive-router", | ||
"zendframework/zend-httphandlerrunner", | ||
"zendframework/zend-expressive-aurarouter", | ||
"zendframework/zend-expressive-zendviewrenderer" | ||
] | ||
} | ||
}, | ||
"support": { | ||
"issues": "https://github.com/zendframework/zend-expressive-skeleton/issues", | ||
"source": "https://github.com/zendframework/zend-expressive-skeleton", | ||
"rss": "https://github.com/zendframework/zend-expressive-skeleton/releases.atom", | ||
"slack": "https://zendframework-slack.herokuapp.com", | ||
"forum": "https://discourse.zendframework.com/c/questions/expressive" | ||
}, | ||
"require": { | ||
"php": "^7.1", | ||
"doctrine/orm": "^2.6", | ||
"zendframework/zend-component-installer": "^2.1.1", | ||
"zendframework/zend-config-aggregator": "^1.0", | ||
"zendframework/zend-diactoros": "^1.7.1 || ^2.0", | ||
"zendframework/zend-expressive": "^3.0.1", | ||
"zendframework/zend-expressive-aurarouter": "^3.0", | ||
"zendframework/zend-expressive-helpers": "^5.0", | ||
"zendframework/zend-expressive-zendviewrenderer": "^2.0", | ||
"zendframework/zend-servicemanager": "^3.3", | ||
"zendframework/zend-stdlib": "^3.1" | ||
}, | ||
"require-dev": { | ||
"phpunit/phpunit": "^7.0.1", | ||
"roave/security-advisories": "dev-master", | ||
"squizlabs/php_codesniffer": "^2.9.1", | ||
"zendframework/zend-expressive-tooling": "^1.0", | ||
"zfcampus/zf-development-mode": "^3.1", | ||
"filp/whoops": "^2.1.12" | ||
}, | ||
"autoload": { | ||
"psr-4": { | ||
"App\\": "src/App/src/" | ||
} | ||
}, | ||
"autoload-dev": { | ||
"psr-4": { | ||
"AppTest\\": "test/AppTest/" | ||
} | ||
}, | ||
"scripts": { | ||
"post-create-project-cmd": [ | ||
"@development-enable" | ||
], | ||
"development-disable": "zf-development-mode disable", | ||
"development-enable": "zf-development-mode enable", | ||
"development-status": "zf-development-mode status", | ||
"expressive": "expressive --ansi", | ||
"check": [ | ||
"@cs-check", | ||
"@test" | ||
], | ||
"clear-config-cache": "php bin/clear-config-cache.php", | ||
"cs-check": "phpcs", | ||
"cs-fix": "phpcbf", | ||
"serve": "php -S 0.0.0.0:8080 -t public/", | ||
"test": "phpunit --colors=always", | ||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml" | ||
} | ||
} |
Oops, something went wrong.