Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
syncEnrollments
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yeray Santana Hualde
syncEnrollments
Commits
a216af62
Commit
a216af62
authored
Feb 08, 2012
by
Taylor Otwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add more portable uri support.
parent
490eb0f5
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
120 additions
and
22 deletions
+120
-22
uri.php
laravel/uri.php
+120
-22
No files found.
laravel/uri.php
View file @
a216af62
...
...
@@ -16,6 +16,13 @@ class URI {
*/
public
static
$segments
=
array
();
/**
* The server variables to check for the URI.
*
* @var array
*/
protected
static
$attempt
=
array
(
'PATH_INFO'
,
'REQUEST_URI'
,
'PHP_SELF'
,
'REDIRECT_URL'
);
/**
* Get the URI for the current request.
*
...
...
@@ -25,24 +32,126 @@ class URI {
{
if
(
!
is_null
(
static
::
$uri
))
return
static
::
$uri
;
$uri
=
parse_url
(
$_SERVER
[
'REQUEST_URI'
],
PHP_URL_PATH
);
// To get the URI, we'll first call the detect method which will spin
// through each of the server variables that we check for the URI in
// and use the first one we encounter for the URI.
static
::
$uri
=
static
::
detect
();
// If you ever encounter this error, please information the Laravel
// dev team with information about your server. We want to support
// Laravel an as many server environments as possible!
if
(
is_null
(
static
::
$uri
))
{
throw
new
\Exception
(
"Could not detect request URI."
);
}
static
::
segments
(
static
::
$uri
);
return
static
::
$uri
;
}
// Remove the root application URL from the request URI. If the application
// is nested within a sub-directory of the web document root, this will get
// rid of all of the the sub-directories from the request URI.
$uri
=
static
::
remove
(
$uri
,
parse_url
(
URL
::
base
(),
PHP_URL_PATH
));
/**
* Detect the URI from the server variables.
*
* @return string|null
*/
protected
static
function
detect
()
{
foreach
(
static
::
$attempt
as
$variable
)
{
// Each variable we search for the URI has its own parser function
// which is responsible for doing any formatting before the value
// is fed into the main formatting function.
$method
=
"parse_
{
$variable
}
"
;
// We'll also remove the application's index page as it is not used for at
// all for routing and is totally unnecessary as far as the routing of
// incoming requests to the framework is concerned.
if
((
$index
=
'/'
.
Config
::
get
(
'application.index'
))
!==
'/'
)
if
(
isset
(
$_SERVER
[
$variable
]))
{
$uri
=
static
::
$method
(
$_SERVER
[
$variable
]);
return
static
::
format
(
$uri
);
}
}
}
/**
* Format a given URI.
*
* @param string $uri
* @return string
*/
protected
static
function
format
(
$uri
)
{
// First we want to remove the application's base URL from the URI
// if it is in the string. It is possible for some of the server
// variables to include the entire document root.
$uri
=
static
::
remove_base
(
$uri
);
$index
=
'/'
.
Config
::
get
(
'application.index'
);
// Next we'll remove the index file from the URI if it is there
// and then finally trim down the URI. If the URI is left with
// nothing but spaces, we use a single slash for root.
if
(
$index
!==
'/'
)
{
$uri
=
static
::
remove
(
$uri
,
$index
);
}
static
::
segments
(
static
::
$uri
=
static
::
format
(
$uri
));
return
((
$uri
=
trim
(
$uri
,
'/'
))
!==
''
)
?
$uri
:
'/'
;
}
return
static
::
$uri
;
/**
* Parse the PATH_INFO server variable.
*
* @param string $value
* @return string
*/
protected
static
function
parse_path_info
(
$value
)
{
return
$value
;
}
/**
* Parse the REQUEST_URI server variable.
*
* @param string $value
* @return string
*/
protected
static
function
parse_request_uri
(
$value
)
{
return
parse_url
(
$value
,
PHP_URL_PATH
);
}
/**
* Parse the PHP_SELF server variable.
*
* @param string $value
* @return string
*/
protected
static
function
parse_php_self
(
$value
)
{
return
$value
;
}
/**
* Parse the REDIRECT_URL server variable.
*
* @param string $value
* @return string
*/
protected
static
function
parse_redirect_url
(
$value
)
{
return
$value
;
}
/**
* Remove the base URL off of the request URI.
*
* @param string $uri
* @return string
*/
protected
static
function
remove_base
(
$uri
)
{
return
static
::
remove
(
$uri
,
parse_url
(
URL
::
base
(),
PHP_URL_PATH
));
}
/**
...
...
@@ -92,15 +201,4 @@ class URI {
return
(
strpos
(
$uri
,
$value
)
===
0
)
?
substr
(
$uri
,
strlen
(
$value
))
:
$uri
;
}
/**
* Format a given URI.
*
* @param string $uri
* @return string
*/
protected
static
function
format
(
$uri
)
{
return
((
$uri
=
trim
(
$uri
,
'/'
))
!==
''
)
?
$uri
:
'/'
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment