Austin Collier
2948308898
Documentation and Pdo Wrapper
1 year ago
Austin Collier
65b3d5445f
Lots more unit testing for group based routing
1 year ago
Austin Collier
12073629cc
added ability to group routes together
1 year ago
Austin Collier
2c2b28af95
100% code coverage everywhere now
1 year ago
n0nag0n
bf2075245e
Got it to 90% coverage with some windows fixes
1 year ago
n0nag0n
d075fc8be6
100% View class coverage
1 year ago
n0nag0n
9a007c5216
100% Coverage for core Classes
1 year ago
n0nag0n
e36e9024c6
100% Coverage Dispatcher Class
1 year ago
n0nag0n
978a05d765
Flight class 100% coverage (too easy!)
1 year ago
n0nag0n
7b15d2cfca
100% coverage for net classes
1 year ago
n0nag0n
a416bfe19b
100% coverage for Request and Route
1 year ago
n0nag0n
0d026b16d1
added test for unique subdir setup in request
1 year ago
n0nag0n
5880579045
Merge pull request #3 from saschanos/type-fix
...
fix wrong type return
1 year ago
fadrian06
42ec161d8a
Added code format
1 year ago
fadrian06
fbcc9108c2
DocBlocks improved
1 year ago
Sascha Nos
c929626fc6
fix wrong type return
1 year ago
Mike Cao
a130231646
Merge pull request #456 from jamalo/master
...
PHP 8.1: Type declare length as int
3 years ago
Mike Cao
fc43bfb4ea
Update flight/net/Request.php
...
Co-authored-by: Michal Hybner <76526074+mu1f407@users.noreply.github.com>
3 years ago
Michal Hybner
21a0c55375
Fix JSON request with empty body
3 years ago
Jamal
d2a92aa808
Fix PHP 8.1: Assign string to int propety
...
TypeError: Cannot assign string to property flight\net\Request::$length of type int
3 years ago
Masroor Ehsan
83fd1e75a2
Added ReturnTypeWillChange attribute to Collection class methods
3 years ago
Masroor Ehsan
dd73a61c32
FIX: Typed property flight\net\Response::$body must not be accessed before initialization
3 years ago
Masroor Ehsan
b7abb4945f
check for valid json input
3 years ago
Masroor Ehsan
a2c5dd5ede
minor refactorings
4 years ago
Masroor Ehsan
5b8e743e3d
refactorings
4 years ago
Masroor Ehsan
d3feb77ce9
fixed parameter types
4 years ago
Masroor Ehsan
04e471bf46
PHP ^7.4|^8.0 compatibility
4 years ago
Mike Cao
bc5e03ca59
Merge pull request #395 from merkuriy/JsonSerializableCollection
...
Added JsonSerializable for util/Collection
4 years ago
Mike Cao
b6429d2a3c
Merge pull request #433 from juneszh/master
...
add content_length configuration
4 years ago
juneszh
ed9bbed287
add content_length configuration
4 years ago
juneszh
c649964d95
add content_length configuration
4 years ago
Mike Cao
b3120f8db2
Merge pull request #409 from pluveto/patch-1
...
Trim url
5 years ago
pluveto
ddb806a604
Trim url pattern
...
This helps support whitespaces between METHOD and URL:
```php
Flight::route('GET /auth/nonce', array($apiAuth, 'getNonce')); // `GET[space][space]/auth/nonce`
Flight::route('POST /auth/login/email', array($apiAuth, 'loginByEmail'));
```
5 years ago
Andreas Kugel
0145f629d3
Enable DELETE method to receive request body
...
Delete for CRUD needs request data in body
5 years ago
Mike Cao
da8eaefc63
Merge pull request #398 from hlidotbe/feature/request-host
...
Add host to request
6 years ago
Hugues Lismonde
b4c9c42b00
Add host to request
...
The requested host can be useful to build an url or route request based
on which host was used.
6 years ago
Hugues Lismonde
e0dfb7406d
Fix request schem
...
As mentionned in #396 , the request scheme was not as documented,
returning SERVER_PROTOCOL instead.
The `getScheme` function is now used to handle common cases (HTTPS,
FORWATED_PROTO, ...).
`request->secure` is also based on the scheme now as `$_SERVER['HTTPS']`
is unreliable for this purpose.
6 years ago
Uriy @MerkUriy Efremochkin
ceb1b5bb89
Added JsonSerializable for util/Collection and added LegacyJsonSerializable for PHP <5.4.0.
...
Closed mikecao/flight#394 .
6 years ago
Delyan Angelov
0daa3f81b5
Allow cyrillic letters in the routes, by matching the result of urldecode over the URL .
6 years ago
Alex Shadie
e25f023d43
Fixed exception catching (php < 7)
7 years ago
Alex Shadie
d3067e5eae
Some improvements for PHPdoc
7 years ago
jqs
ccf4858573
Removed extraneous ->write($url) call on redirect that was causing Safari to bugger out qwhen using HTTP2, which it tends to handle more strictly.
...
Notes:
The line above writes the URL to redirect to for the 303 then that line writes it again.
The result is a multi-line http header which causes safari to freak out when in http2 mode.
https://blog.christopherburg.com/2017/10/18/safari-11-multiline-http-headers-and-nsposixerrordomain100/
blog.christopherburg.com
Safari 11, Multiline HTTP Headers, and NSPOSIXErrorDomain:100. at A Geek With Guns
Chronicling the depravities of the State
7 years ago
Uriy Efremochkin
cc72d9a081
Code style fix
7 years ago
Uriy Efremochkin
4841466656
Fix for Doc
7 years ago
kouts
98c105d009
Update Engine.php
...
Fixed halt method so that it stops execution.
7 years ago
kouts
53f0c1671d
Update Engine.php
...
Add ```clear``` to the halt method in order to work as expected with the latest changes
7 years ago
Mike Cao
e146b8c0dd
Prevent response from sending more than once.
7 years ago
Mike Cao
5b4916d4e3
Fix conflict with external error handlers.
7 years ago
Mike Cao
7ae2011723
Sending response should not exit to allow pre-stop filters.
7 years ago
Mike Cao
1c8d06cc42
Response content-length header should use mbstring if available.
8 years ago
Yassine Addi
a0d749276f
Fix redirect method due to a mistake removing backslashes
...
The problem is that if 'flight.base_url' setting is set to 'http://localhost/flight ', then:
$url = 'http:/localhost/flight';
Notice that one backslash has been removed.
8 years ago
Mike Cao
c3c6f68909
Removed another case of $route passing. Updated tests.
8 years ago
Mike Cao
6aea7394c4
Remove $route from parameter list, only pass when dispatching callback.
8 years ago
Mike Cao
9c8d492799
Removed JSON encode depth parameter to keep PHP 5.3 compatibility.
8 years ago
Mike Cao
b30d5e5fa2
Moved map method check to Engine. Added get method to Loader. Added new tests.
8 years ago
Shane Armstrong
a9ced778ee
#203 - Executing an unmapped method within the engine dispatcher now throws an Exception, clarified the return class of Flight::app()
8 years ago
Shane Armstrong
b7b929bf99
#290 - JSON methods now support encode option/depth, added missing arguments to json/jsonp method documentation, _json/_jsonp methods now list arguments on individual lines to remain PSR-2 compliant
8 years ago
Mike Cao
ec24d78602
Allow static methods to be called using a string.
9 years ago
susuper
bf7b6d6431
Changed Last-Modified HTTP header format
9 years ago
Mike Cao
f3fa0513fe
Updated error handling for PHP 7.
9 years ago
Mike Cao
b96aaa7967
Added charset option for JSON requests.
9 years ago
Yuri Tkachenko
d191ca821e
fix namespace ref
9 years ago
Yuri Tkachenko
561542f068
Redirects > Request & Response
9 years ago
Yuri Tkachenko
6242b54edb
added request(), response(), router(), view() @method reference to
...
Flight PHPDoc section. Also did some rearrangement of methods in
documentation.
9 years ago
Mike Cao
b9dfda3fd6
Do not send a new response for json requests.
9 years ago
Mike Cao
cabbb25fcc
Added support for custom template file extensions.
9 years ago
Mike Cao
7fd3594ac7
Added ability to perform case sensitive matching of URLs.
9 years ago
Mike Cao
1feeb95ff2
Encode reserved @ character in URLs.
9 years ago
Mike Cao
486ec7c689
Application now initialized in Flight::app() instead of __callStatic.
9 years ago
Edward Brosens
afbf306336
add getter for protected headers property
10 years ago
Yuriy Tkachenko
b187f3564f
Correct PHPDoc for phpStorm
...
make phpStorm correctly identify has and get functions
10 years ago
Seth Battin
bb11ca47bc
include pragma='no-cache' in the cache header reset
10 years ago
Mike Cao
10750b5ce3
getBody should check for PATCH method.
10 years ago
Mike Cao
a32f2c2087
getMethod should return uppercase string.
10 years ago
Mike Cao
0c8b665304
Bump version. Minor syntax update.
10 years ago
everflux
268cf0cb66
Provide content-length header if response has a body
10 years ago
Mike Cao
7c50eb7cfb
Passing to a non-matching route should return a 404.
10 years ago
Alexander
c4ab005462
Added list of methods for autocomplete
...
Added list of available methods to the PHPDoc section of `Flight` class. Inspired by suggestion: http://stackoverflow.com/a/26628288/1363799
10 years ago
Erwin
2f4210ad3f
Using multiple template paths
...
I want to use more template directory's along with the multiple flight.views.path during execution of the script. So want to be able to change it on the fly, during execution. And I want the extra template directory's to be outside of the normal flight.views.path.
I tried a lot of ways without changing the View.php but this change is simpel and works for me.
This way I can easily do:
Flight::render(TPL_PATH.'hello', ['name'=>'Bob'], 'header_content');
10 years ago
Daniel Stelljes
54440d1db0
Removed static body variable from Request
10 years ago
Daniel Stelljes
703536d2bf
Set up request body caching
10 years ago
Mike Cao
ef76d72b56
Added ability to get all saved variables.
10 years ago
Lars-Jørgen Kristiansen
d5e808a495
fixed message for http code 306
11 years ago
Lars-Jørgen Kristiansen
b8a1c1e163
added all HTTP status codes from http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
11 years ago
Lars-Jørgen Kristiansen
e6ed90e3fb
Added more HTTP status codes
11 years ago
Mike Cao
64d384ddff
Splat should consider trailing slash in URLs.
11 years ago
Mike Cao
88f4c1fb71
Fixed issue with splats when used with named parameters.
11 years ago
Mike Cao
7745f6a34c
Merge pull request #141 from pine3ree/patch-1
...
replacing array_push with faster []
11 years ago
maks feltrin
bcb5b120a9
Update Router.php
11 years ago
maks feltrin
229cbd24f5
replacing array_push with faster []
11 years ago
kafene
3392751dba
Add support for getting request status
11 years ago
kafene
71f66b4d5d
Add support for HTTP status code 418 (Permanent Redirect)
11 years ago
Mike Cao
c0fa0bed7c
Redirects should always consider the base directory.
11 years ago
Stefan Meinecke
5e284a1d9c
Updated class comment.
...
- removed deprecated json property
- added missing secure, accept and proxy_ip property
11 years ago
Mike Cao
81041d418b
JSON request input is now stored in the data property.
11 years ago
Mike Cao
da40e03eb4
Removed the body property from the Request class.
11 years ago
Mike Cao
d84e51ba47
Updated route object passing functionality.
...
Before the route object would automatically be passed to all callbacks. Now you need to explicitly
ask for it by passing in true as the third parameter in Flight::route().
11 years ago
Mike Cao
ab2aba4e7d
Added method to get the request body.
11 years ago
Mike Cao
0f49cc7abc
Converted helper methods to public and static.
11 years ago
Cuonic
d097c21dcb
Fixed code to work when body is empty
...
Now passes empty JSON data through the collection system to remove
errors about unknown keys when posting via other methods
11 years ago
Cuonic
a8f50e2f4b
Fixed problem with Request Json array
...
Fixed content type for browsers that also send character encoding, and
now send the JSON data through the Collection system.
11 years ago
Quang Nhut Lam-Nguyen
bed3824192
Change getVar() function from private to public
...
This function is very useful to get extra headers like authorization (for JSON Web Token purpose),...
Flight::request()->getVar('custom');
11 years ago
Mike Cao
b10b294d83
Added method to get the application object instance.
11 years ago
Berkus Decker
c0c7b9dcd9
Modify Request based on feedback from Mike.
11 years ago
Berkus
62c4f2fa0b
Add support for parsed JSON property in Request.
11 years ago
Mike Cao
b9b2d0fa2d
Added ability to register callbacks for class instantiation.
11 years ago
Mike Cao
6b6397764d
Use array in str_replace call.
11 years ago
Mike Cao
6239ab4d80
Prevent collision of $template variable.
11 years ago
Pascal Borreli
2648a5216e
Fixed typos
11 years ago
Micah Wood
3a4c0c72bf
Simplify output buffering code
...
No need to use both ob_get_contents() and ob_end_clean() when you can just use ob_get_clean().
11 years ago
Mike Cao
fdb88e842a
Fixed documentation.
11 years ago
Mike Cao
7817255a61
Added ability to get splat from URL pattern.
11 years ago
Mike Cao
b8e400e1be
Converted JSONP config into a parameter. Fixed incorrect content type.
11 years ago
Mike Cao
777ac096ec
JSON method should send a clean response.
11 years ago
Mike Cao
30195237e5
Reverted response handling.
...
Caused too many conflicts with other methods. Clean up should be done before the stop method is called.
11 years ago
Mike Cao
6a1029a187
Response should only be sent once.
11 years ago
Mike Cao
b8026d9828
Sending a response should not exit the program.
...
We need to allow events to fire after the stop method is called. This will allow users to clean up resources, perform logging, etc.
11 years ago
Mike Cao
5ba910981f
Allow HTTP method overriding.
11 years ago
Mike Cao
86d1ea20e4
Fixed reference to $this.
11 years ago
Mike Cao
001c8ec301
Fixed error with calling stop method.
11 years ago
Mike Cao
6fe4e32fee
Added additional options for JSON methods.
11 years ago
Mike Cao
6696c0d267
Dispatcher should check for valid callback.
11 years ago
Mike Cao
3fde3685c5
Formatting.
11 years ago
Eric Anderson
1a0eede079
Use $_SERVER instead of getenv.
...
This partially reverts cec890c
. In addition to other cleanup the commit changed
from using $_SERVER to getenv. As @kafene said on issue #21 , getenv provides a
nicer API making the code clean. I.E.
$val = getenv('val') ?: 'default';
Instead of:
$val = isset($_SERVER['val']) ? $_SERVER['val'] : 'default';
Although this is true unfortuantly it is less reliable. Using getenv in this
way assumes the application is running under some sort of CGI interface or
an interface that is simulating the CGI interface.
While this assumption is very often true it is not always true. For example
when using [PHP built-in webserver][1] (useful for development) getenv will
return false for most of these values even through $_SERVER is populated. I
believe also some interfaces on Windows don't populate getenv.
This means that flight is not usable in those environments. By partially
reverting cec890c
we re-enable flight in those environments.
For Engine.php and Response.php I just directly reverted cec890c
. Since request
makes so much use of getenv it seemed wise to abstract the conditional checking
to keep the code clean via a private function.
The tests were also updated to populate $_SERVER instead of the environment
via putenv.
[1]: http://php.net/manual/en/features.commandline.webserver.php
11 years ago
ozh
258e56b4ec
Use $this
11 years ago
ozh
5e0627f41b
Coding style (same white space as original file)
11 years ago
ozh
4ccfe8c386
JSONP support
11 years ago
Mike Cao
7e1a098f6c
Autoloader should not throw exceptions.
12 years ago
Mike Cao
988d4f5631
Exception should be thrown and not handled.
12 years ago
Mike Cao
8ca9b2d76d
Setting status should not send headers.
12 years ago
Mike Cao
2d6a04d514
Made default properties into class variables.
12 years ago
Mike Cao
2ce369cb50
Flush existing output before the start method.
12 years ago
Mike Cao
3a4a30e879
Updated check for base_url.
12 years ago
Mike Cao
d41795cbdc
Updated handling of subdirectories and redirects.
12 years ago
Mike Cao
1acb68756c
Remove duplicates from loader directories.
12 years ago
Mike Cao
93d7602b20
Removed caching from halt method.
12 years ago
Mike Cao
b4a9d6f70e
Fixed issue with 304 caching. Fixed PHP 5.3 compatibility.
12 years ago
Mike Cao
2050027db6
Cleaned up initialization process.
12 years ago
Mike Cao
84078158c3
Introduced new Engine class.
...
Core functionality has been moved to a namespaced Engine class. The
existing Flight class is now just a static pass-through to the Engine class.
Also fixed autoloading and initialization issues.
12 years ago
Mike Cao
a04020d50e
Fix line feeds.
12 years ago
Mike Cao
f64774881f
Fixed issue with url pattern matching.
12 years ago
Mike Cao
28ae5e0aec
Added route passing functionality.
12 years ago
kafene
69e5dab546
Don't let header fields clobber eachother
...
See: http://php.net/manual/en/function.header.php
2nd option, $replace, should be false if sending multiple headers with the same name.
The difference can be observed by editing index.php (the example index page) so that before `echo 'hello'` is a line: `flight::response()->cache(false);`
and editing Response.php so that before `exit($this->body)` is a line: `var_dump(headers_list());`
Before change:
`array (size=3)`
`0 => string 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' (length=38)`
`1 => string 'Cache-Control: max-age=0' (length=24)`
`2 => string 'Pragma: no-cache' (length=16)`
After:
`array (size=5)`
`0 => string 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' (length=38)`
`1 => string 'Cache-Control: no-store, no-cache, must-revalidate' (length=50)`
`2 => string 'Cache-Control: post-check=0, pre-check=0' (length=40)`
`3 => string 'Cache-Control: max-age=0' (length=24)`
`4 => string 'Pragma: no-cache' (length=16)`
12 years ago
Mike Cao
4cf069a552
Minor code changes.
12 years ago
Mike Cao
65807a1f29
Parse optional parameters before regex.
12 years ago
Mike Cao
1ba8770da7
Added matched regex property.
12 years ago
Mike Cao
61ce37ca64
Updated router pattern matching.
12 years ago
Mike Cao
98d57a82b4
$_GET should not be overwritten.
12 years ago
Mike Cao
ecc0b87024
Updated getTemplate to allow subdirectories.
12 years ago
Mike Cao
440cca5901
Minor code changes
12 years ago