Download the PHP package sinevia/php-serverless without Composer
On this page you can find all versions of the php package sinevia/php-serverless. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package php-serverless
PHP SERVERLESS FRAMEWORK
The first and fully functional PHP framework built exclusively for serverless. Support for IBM Cloud Functions
FEATURES
- Easy to learn and start. All required is in this README file.
- Fully automated and extendable via RoboFile (learn more).
- Powerful and super fast router (learn more).
- Lean database library (learn more). Eloquent optional.
- Lean template engine (learn more). Blade optional.
- Lean testing framework (learn more). PhpUnit optional.
- Uses tested serverless deployment framework (learn more)
INSTALLATION
-
Step 1
- Step 2
AFTER INSTALLATION
- Delete the phpunit.xml file, if you are not going to use PHPUnit for testing
- Change the settings in /app/config (serverless function name, etc)
- Change the settings in /env.php (not required usually)
WORKFLOW
Four environments are specified and available out of the box - local, testing, staging, live.
- Local. All development is done on local - (local)
- Testing. Automatic tests are run in testing - (testing)
- Staging. For user and manual testing depoy to staging - (staging)
- Live. For real live usage deploy to live - (live)
DEVELOPMENT
To start working on the project run the built in PHP server:
or using the helper function
Then open in browser: http://localhost:32222/
or using the helper function
DATABASE
To run migrations for each environment:
DEPLOYMENT
The deployment will run your tests, and will continue only if your tests are successful
To deploy to your staging function
To deploy to your live function
HELPER FUNCTIONS
A RoboFile exists with automated functionality.
-
Run database migrations on local
-
Run database migrations on staging
-
Run database migrations on live
-
Serve the site for development
-
Open local/dev url from terminal
-
Open staging url from terminal
-
Open live url from terminal
-
Deploy to staging
- Deploy to live
TESTING
Two testing frameworks supported out of the box:
- Testify.php - very lean and straghtforward to work with (preferred, and preinstaled)
- PHPUnit - more mature, but heavy weight with many dependencies
To decide which modify the setting in the RoboFile.
Testing with Testify.php
Testify is a small PHP testing library with no extenal dependencies: https://github.com/BafS/Testify.php
Place your tests in /tests/test.php
To run the tests
or
Testing with PHPUnit
PHPUnit is a huge PHP testing library. Beware it will come with lots of composer dependencies: https://phpunit.de/
To install the framework with all the dependencies
Place your settigs in /phpunit.xml. Place your tests in /tests
To run the tests
or
SERVING STATIC FILES
Multiple options
Local CSS and JavaScript files are best to be served minified inline. Helper functions are added
Small images (i.e. favicon) serve inline as data.
To serve static files separately place them in the public directory.
For remote static files use CDN, S3 or other storage.
FUNCTIONS
Functions are defined in file /app/functions.php. Feel free to change or remove.
basePath($path = '')
Returns the top most (root, base) path of the application
baseUrl($path = '')
Returns the top most (root, base) URL of the application
db()
Returns a database instance
env($key, $default = '')
Returns an env variable from OPEN WHISK
htmlFormatPriceWithCurrencySymbol($amount, $currency)
image2DataUri($imagePath)
Converts an image path to data URI
isGet
Checks if this is a GET request
isPost
Checks if this is a POST request
joinCss($styles, $options = [])
Joins multiple CSS files, and optionally minifies them
joinJs($scripts, $options = [])
Joins multiple JavaScript files, and optionally minifies them
redirect($url)
Redirects to the specified URL
req($name, $default = null, $functions = [])
Returns the requested $_REQUEST name-value pair if it exists
sess($name, $default = null, $functions = [], $options = [])
Returns the requested $_SESSION name-value pair if it exists
once($name, $default = null, $functions = [], $options = [])
Returns a once value if it exists in $_SESSION. After the value is returned, it is deleted
function reqOrSess($name, $default = null, $functions = [])
ui($view, $vars = array(), $options = array())
Renders a template from app/views. If no extension is specified .phtml is added
view($view, $data)
Renders a Blade template from /views. A /cache folder is required. If using Eloquent for data management this function will clash, delete it, or rename it i.e. to uiBlade($view, $data).
To use the view function you must install Blade:
All versions of php-serverless with dependencies
illuminate/database Version ^6.3
jenssegers/blade Version dev-master
mrclay/jsmin-php Version >=2.4.0
phroute/phroute Version >=v2.1.0
sinevia/php-library-api Version ^1.1
sinevia/php-library-migrate Version >=v1.3.0
sinevia/php-library-registry Version >=v2.8.0
sinevia/php-library-serverless Version >=v1.7.0
sinevia/php-library-sqldb Version >=v3.8.0
sinevia/php-library-sqldb-cache Version ^1.2
sinevia/php-library-template Version >=v1.4.0
sinevia/php-library-uid Version ^1.8
sinevia/php-library-utils Version >=v2.7.0