Fixed some README references

pull/504/head
fadrian06 1 year ago
parent 8641ae598c
commit 01fe13cc42

@ -2,11 +2,8 @@ root = true
[*] [*]
indent_style = space indent_style = space
indent_size = 4 indent_size = 2
end_of_line = lf end_of_line = lf
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
[*.md]
indent_size = 2

@ -1,7 +1,7 @@
![](https://user-images.githubusercontent.com/104888/50957476-9c4acb80-14be-11e9-88ce-6447364dc1bb.png) ![PHPStan: enabled](https://user-images.githubusercontent.com/104888/50957476-9c4acb80-14be-11e9-88ce-6447364dc1bb.png)
![](https://img.shields.io/badge/PHPStan-level%206-brightgreen.svg?style=flat) ![PHPStan: level 6](https://img.shields.io/badge/PHPStan-level%206-brightgreen.svg?style=flat)
![](https://img.shields.io/matrix/flight-php-framework%3Amatrix.org?server_fqdn=matrix.org&style=social&logo=matrix) ![Matrix](https://img.shields.io/matrix/flight-php-framework%3Amatrix.org?server_fqdn=matrix.org&style=social&logo=matrix)
[![HitCount](https://hits.dwyl.com/flightphp/core.svg?style=flat-square&show=unique)](http://hits.dwyl.com/flightphp/core) [![Hit Count](https://hits.dwyl.com/flightphp/core.svg?style=flat-square&show=unique)](http://hits.dwyl.com/flightphp/core)
# What is Flight? # What is Flight?
@ -11,12 +11,12 @@ quickly and easily build RESTful web applications.
Chat with us on Matrix IRC [#flight-php-framework:matrix.org](https://matrix.to/#/#flight-php-framework:matrix.org) Chat with us on Matrix IRC [#flight-php-framework:matrix.org](https://matrix.to/#/#flight-php-framework:matrix.org)
# Basic Usage # Basic Usage
```php
```php
// if installed with composer // if installed with composer
require 'vendor/autoload.php'; require 'vendor/autoload.php';
// or if installed manually by zip file // or if installed manually by zip file
//require 'flight/Flight.php'; // require 'flight/Flight.php';
Flight::route('/', function() { Flight::route('/', function() {
echo 'hello world!'; echo 'hello world!';
@ -37,19 +37,19 @@ Flight is released under the [MIT](http://flightphp.com/license) license.
# Installation # Installation
1\. Download the files. **1\. Download the files.**
If you're using [Composer](https://getcomposer.org/), you can run the following If you're using [Composer](https://getcomposer.org), you can run the following
command: command:
```bash ```bash
composer require n0nag0n/flight composer require flightphp/core
``` ```
OR you can [download](https://github.com/n0nag0n/flight/archive/master.zip) OR you can [download](https://github.com/flightphp/core/archive/master.zip)
them directly and extract them to your web directory. them directly and extract them to your web directory.
2\. Configure your webserver. **2\. Configure your webserver.**
For *Apache*, edit your `.htaccess` file with the following: For *Apache*, edit your `.htaccess` file with the following:
@ -60,19 +60,26 @@ RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L] RewriteRule ^(.*)$ index.php [QSA,L]
``` ```
**Note**: If you need to use flight in a subdirectory add the line > **Note**: If you need to use flight in a subdirectory add the line
`RewriteBase /subdir/` just after `RewriteEngine On`. > `RewriteBase /subdir/` just after `RewriteEngine On`.
> **Note**: If you want to protect all server files, like a db or env file.
> Put this in your `.htaccess` file:
```
RewriteEngine On
RewriteRule ^(.*)$ index.php
```
For *Nginx*, add the following to your server declaration: For *Nginx*, add the following to your server declaration:
``` ```
server { server {
location / { location / {
try_files $uri $uri/ /index.php; try_files $uri $uri/ /index.php;
} }
} }
``` ```
3\. Create your `index.php` file. **3\. Create your `index.php` file.**
First include the framework. First include the framework.
@ -124,31 +131,32 @@ Or a class method:
```php ```php
class Greeting { class Greeting {
public static function hello() { static function hello() {
echo 'hello world!'; echo 'hello world!';
} }
} }
Flight::route('/', array('Greeting', 'hello')); Flight::route('/', [Greeting::class, 'hello']);
``` ```
Or an object method: Or an object method:
```php ```php
class Greeting class Greeting {
{ private $name;
public function __construct() {
function __construct() {
$this->name = 'John Doe'; $this->name = 'John Doe';
} }
public function hello() { function hello() {
echo "Hello, {$this->name}!"; echo "Hello, $this->name!";
} }
} }
$greeting = new Greeting(); $greeting = new Greeting;
Flight::route('/', array($greeting, 'hello')); Flight::route('/', [$greeting, 'hello']);
``` ```
Routes are matched in the order they are defined. The first route to match a Routes are matched in the order they are defined. The first route to match a
@ -193,7 +201,7 @@ You can specify named parameters in your routes which will be passed along to
your callback function. your callback function.
```php ```php
Flight::route('/@name/@id', function(string $name, string $id) { Flight::route('/@name/@id', function (string $name, string $id) {
echo "hello, $name ($id)!"; echo "hello, $name ($id)!";
}); });
``` ```
@ -202,7 +210,7 @@ You can also include regular expressions with your named parameters by using
the `:` delimiter: the `:` delimiter:
```php ```php
Flight::route('/@name/@id:[0-9]{3}', function(string $name, string $id) { Flight::route('/@name/@id:[0-9]{3}', function (string $name, string $id) {
// This will match /bob/123 // This will match /bob/123
// But will not match /bob/12345 // But will not match /bob/12345
}); });
@ -257,7 +265,7 @@ your callback function.
```php ```php
Flight::route('/user/@name', function (string $name) { Flight::route('/user/@name', function (string $name) {
// Check some condition // Check some condition
if ($name != "Bob") { if ($name !== "Bob") {
// Continue to next route // Continue to next route
return true; return true;
} }
@ -303,7 +311,7 @@ To map your own custom method, you use the `map` function:
```php ```php
// Map your method // Map your method
Flight::map('hello', function ($name) { Flight::map('hello', function (string $name) {
echo "hello $name!"; echo "hello $name!";
}); });
@ -317,7 +325,7 @@ To register your own class, you use the `register` function:
```php ```php
// Register your class // Register your class
Flight::register('user', 'User'); Flight::register('user', User::class);
// Get an instance of your class // Get an instance of your class
$user = Flight::user(); $user = Flight::user();
@ -330,7 +338,7 @@ Here's an example of loading a database connection:
```php ```php
// Register class with constructor parameters // Register class with constructor parameters
Flight::register('db', 'PDO', array('mysql:host=localhost;dbname=test','user','pass')); Flight::register('db', PDO::class, ['mysql:host=localhost;dbname=test', 'user', 'pass']);
// Get an instance of your class // Get an instance of your class
// This will create an object with the defined parameters // This will create an object with the defined parameters
@ -346,9 +354,14 @@ new object. The callback function takes one parameter, an instance of the new ob
```php ```php
// The callback will be passed the object that was constructed // The callback will be passed the object that was constructed
Flight::register('db', 'PDO', array('mysql:host=localhost;dbname=test','user','pass'), function (PDO $db): void { Flight::register(
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 'db',
}); PDO::class,
['mysql:host=localhost;dbname=test', 'user', 'pass'],
function (PDO $db) {
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
);
``` ```
By default, every time you load your class you will get a shared instance. By default, every time you load your class you will get a shared instance.
@ -375,7 +388,7 @@ method which sends a generic `HTTP 404` response. You can override this behavior
by using the `map` method: by using the `map` method:
```php ```php
Flight::map('notFound', function(){ Flight::map('notFound', function() {
// Display custom 404 page // Display custom 404 page
include 'errors/404.html'; include 'errors/404.html';
}); });
@ -386,7 +399,7 @@ For example you can replace the default Router class with your own custom class:
```php ```php
// Register your custom class // Register your custom class
Flight::register('router', 'MyRouter'); Flight::register('router', MyRouter::class);
// When Flight loads the Router instance, it will load your class // When Flight loads the Router instance, it will load your class
$myrouter = Flight::router(); $myrouter = Flight::router();
@ -404,7 +417,7 @@ methods as well as any custom methods that you've mapped.
A filter function looks like this: A filter function looks like this:
```php ```php
function (array &$params, string &$output) { function (array &$params, string &$output): bool {
// Filter code // Filter code
} }
``` ```
@ -414,7 +427,7 @@ Using the passed in variables you can manipulate the input parameters and/or the
You can have a filter run before a method by doing: You can have a filter run before a method by doing:
```php ```php
Flight::before('start', function (array &$params, string &$output) { Flight::before('start', function (array &$params, string &$output): bool {
// Do something // Do something
}); });
``` ```
@ -422,7 +435,7 @@ Flight::before('start', function (array &$params, string &$output) {
You can have a filter run after a method by doing: You can have a filter run after a method by doing:
```php ```php
Flight::after('start', function (array &$params, string &$output) { Flight::after('start', function (array &$params, string &$output): bool {
// Do something // Do something
}); });
``` ```
@ -434,20 +447,22 @@ Here's an example of the filtering process:
```php ```php
// Map a custom method // Map a custom method
Flight::map('hello', function ($name) { Flight::map('hello', function (string $name) {
return "Hello, $name!"; return "Hello, $name!";
}); });
// Add a before filter // Add a before filter
Flight::before('hello', function (array &$params, string &$output) { Flight::before('hello', function (array &$params, string &$output): bool {
// Manipulate the parameter // Manipulate the parameter
$params[0] = 'Fred'; $params[0] = 'Fred';
return true;
}); });
// Add an after filter // Add an after filter
Flight::after('hello', function (array &$params, string &$output) { Flight::after('hello', function (array &$params, string &$output): bool {
// Manipulate the output // Manipulate the output
$output .= " Have a nice day!"; $output .= " Have a nice day!";
return true;
}); });
// Invoke the custom method // Invoke the custom method
@ -464,8 +479,9 @@ If you have defined multiple filters, you can break the chain by returning `fals
in any of your filter functions: in any of your filter functions:
```php ```php
Flight::before('start', function (array &$params, string &$output){ Flight::before('start', function (array &$params, string &$output): bool {
echo 'one'; echo 'one';
return true;
}); });
Flight::before('start', function (array &$params, string &$output): bool { Flight::before('start', function (array &$params, string &$output): bool {
@ -476,8 +492,9 @@ Flight::before('start', function (array &$params, string &$output): bool {
}); });
// This will not get called // This will not get called
Flight::before('start', function (array &$params, string &$output){ Flight::before('start', function (array &$params, string &$output): bool {
echo 'three'; echo 'three';
return true;
}); });
``` ```
@ -526,7 +543,7 @@ template call the `render` method with the name of the template file and optiona
template data: template data:
```php ```php
Flight::render('hello.php', array('name' => 'Bob')); Flight::render('hello.php', ['name' => 'Bob']);
``` ```
The template data you pass in is automatically injected into the template and can The template data you pass in is automatically injected into the template and can
@ -534,7 +551,7 @@ be reference like a local variable. Template files are simply PHP files. If the
content of the `hello.php` template file is: content of the `hello.php` template file is:
```php ```php
Hello, <?php echo $name; ?>! Hello, <?= $name ?>!
``` ```
The output would be: The output would be:
@ -572,15 +589,15 @@ content. To render content to be used in a layout, you can pass in an optional
parameter to the `render` method. parameter to the `render` method.
```php ```php
Flight::render('header', array('heading' => 'Hello'), 'header_content'); Flight::render('header', ['heading' => 'Hello'], 'headerContent');
Flight::render('body', array('body' => 'World'), 'body_content'); Flight::render('body', ['body' => 'World'], 'bodyContent');
``` ```
Your view will then have saved variables called `header_content` and `body_content`. Your view will then have saved variables called `headerContent` and `bodyContent`.
You can then render your layout by doing: You can then render your layout by doing:
```php ```php
Flight::render('layout', array('title' => 'Home Page')); Flight::render('layout', ['title' => 'Home Page']);
``` ```
If the template files looks like this: If the template files looks like this:
@ -588,13 +605,13 @@ If the template files looks like this:
`header.php`: `header.php`:
```php ```php
<h1><?php echo $heading; ?></h1> <h1><?= $heading ?></h1>
``` ```
`body.php`: `body.php`:
```php ```php
<div><?php echo $body; ?></div> <div><?= $body ?></div>
``` ```
`layout.php`: `layout.php`:
@ -602,11 +619,11 @@ If the template files looks like this:
```php ```php
<html> <html>
<head> <head>
<title><?php echo $title; ?></title> <title><?= $title ?></title>
</head> </head>
<body> <body>
<?php echo $header_content; ?> <?= $headerContent ?>
<?php echo $body_content; ?> <?= $bodyContent ?>
</body> </body>
</html> </html>
``` ```
@ -636,11 +653,11 @@ require './Smarty/libs/Smarty.class.php';
// Register Smarty as the view class // Register Smarty as the view class
// Also pass a callback function to configure Smarty on load // Also pass a callback function to configure Smarty on load
Flight::register('view', 'Smarty', array(), function (Smarty $smarty) { Flight::register('view', Smarty::class, [], function (Smarty $smarty) {
$smarty->setTemplateDir() = './templates/'; $smarty->setTemplateDir('./templates/');
$smarty->setCompileDir() = './templates_c/'; $smarty->setCompileDir('./templates_c/');
$smarty->setConfigDir() = './config/'; $smarty->setConfigDir('./config/');
$smarty->setCacheDir() = './cache/'; $smarty->setCacheDir('./cache/');
}); });
// Assign template data // Assign template data
@ -653,7 +670,7 @@ Flight::view()->display('hello.tpl');
For completeness, you should also override Flight's default render method: For completeness, you should also override Flight's default render method:
```php ```php
Flight::map('render', function($template, $data){ Flight::map('render', function(string $template, array $data): void {
Flight::view()->assign($data); Flight::view()->assign($data);
Flight::view()->display($template); Flight::view()->display($template);
}); });
@ -669,9 +686,9 @@ response with some error information.
You can override this behavior for your own needs: You can override this behavior for your own needs:
```php ```php
Flight::map('error', function(Throwable $ex){ Flight::map('error', function (Throwable $error) {
// Handle error // Handle error
echo $ex->getTraceAsString(); echo $error->getTraceAsString();
}); });
``` ```
@ -837,19 +854,19 @@ Flight provides support for sending JSON and JSONP responses. To send a JSON res
pass some data to be JSON encoded: pass some data to be JSON encoded:
```php ```php
Flight::json(array('id' => 123)); Flight::json(['id' => 123]);
``` ```
For JSONP requests you, can optionally pass in the query parameter name you are For JSONP requests you, can optionally pass in the query parameter name you are
using to define your callback function: using to define your callback function:
```php ```php
Flight::jsonp(array('id' => 123), 'q'); Flight::jsonp(['id' => 123], 'q');
``` ```
So, when making a GET request using `?q=my_func`, you should receive the output: So, when making a GET request using `?q=my_func`, you should receive the output:
``` ```javascript
my_func({"id":123}); my_func({"id":123});
``` ```
@ -906,7 +923,7 @@ Flight::halt(int $code = 200, string $message = '') // Stop the framework with a
Flight::route(string $pattern, callable $callback, bool $pass_route = false) // Maps a URL pattern to a callback. Flight::route(string $pattern, callable $callback, bool $pass_route = false) // Maps a URL pattern to a callback.
Flight::redirect(string $url, int $code) // Redirects to another URL. Flight::redirect(string $url, int $code) // Redirects to another URL.
Flight::render(string $file, array $data, ?string $key = null) // Renders a template file. Flight::render(string $file, array $data, ?string $key = null) // Renders a template file.
Flight::error(Throwable $exception) // Sends an HTTP 500 response. Flight::error(Throwable $error) // Sends an HTTP 500 response.
Flight::notFound() // Sends an HTTP 404 response. Flight::notFound() // Sends an HTTP 404 response.
Flight::etag(string $id, string $type = 'string') // Performs ETag HTTP caching. Flight::etag(string $id, string $type = 'string') // Performs ETag HTTP caching.
Flight::lastModified(int $time) // Performs last modified HTTP caching. Flight::lastModified(int $time) // Performs last modified HTTP caching.

@ -1 +0,0 @@
3.0.0
Loading…
Cancel
Save