Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F102113624
Bootstrap.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Feb 17, 06:01
Size
2 KB
Mime Type
text/x-php
Expires
Wed, Feb 19, 06:01 (2 d)
Engine
blob
Format
Raw Data
Handle
24283858
Attached To
rPH Phabricator
Bootstrap.php
View Options
<?php
namespace
Httpful
;
/**
* Bootstrap class that facilitates autoloading. A naive
* PSR-0 autoloader.
*
* @author Nate Good <me@nategood.com>
*/
class
Bootstrap
{
const
DIR_GLUE
=
DIRECTORY_SEPARATOR
;
const
NS_GLUE
=
'
\\
'
;
public
static
$registered
=
false
;
/**
* Register the autoloader and any other setup needed
*/
public
static
function
init
()
{
spl_autoload_register
(
array
(
'
\H
ttpful
\B
ootstrap'
,
'autoload'
));
self
::
registerHandlers
();
}
/**
* The autoload magic (PSR-0 style)
*
* @param string $classname
*/
public
static
function
autoload
(
$classname
)
{
self
::
_autoload
(
dirname
(
dirname
(
__FILE__
)),
$classname
);
}
/**
* Register the autoloader and any other setup needed
*/
public
static
function
pharInit
()
{
spl_autoload_register
(
array
(
'
\H
ttpful
\B
ootstrap'
,
'pharAutoload'
));
self
::
registerHandlers
();
}
/**
* Phar specific autoloader
*
* @param string $classname
*/
public
static
function
pharAutoload
(
$classname
)
{
self
::
_autoload
(
'phar://httpful.phar'
,
$classname
);
}
/**
* @param string base
* @param string classname
*/
private
static
function
_autoload
(
$base
,
$classname
)
{
$parts
=
explode
(
self
::
NS_GLUE
,
$classname
);
$path
=
$base
.
self
::
DIR_GLUE
.
implode
(
self
::
DIR_GLUE
,
$parts
)
.
'.php'
;
if
(
file_exists
(
$path
))
{
require_once
(
$path
);
}
}
/**
* Register default mime handlers. Is idempotent.
*/
public
static
function
registerHandlers
()
{
if
(
self
::
$registered
===
true
)
{
return
;
}
// @todo check a conf file to load from that instead of
// hardcoding into the library?
$handlers
=
array
(
\Httpful\Mime
::
JSON
=>
new
\Httpful\Handlers\JsonHandler
(),
\Httpful\Mime
::
XML
=>
new
\Httpful\Handlers\XmlHandler
(),
\Httpful\Mime
::
FORM
=>
new
\Httpful\Handlers\FormHandler
(),
\Httpful\Mime
::
CSV
=>
new
\Httpful\Handlers\CsvHandler
(),
);
foreach
(
$handlers
as
$mime
=>
$handler
)
{
// Don't overwrite if the handler has already been registered
if
(
Httpful
::
hasParserRegistered
(
$mime
))
continue
;
Httpful
::
register
(
$mime
,
$handler
);
}
self
::
$registered
=
true
;
}
}
Event Timeline
Log In to Comment