Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F93132357
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
Tue, Nov 26, 11:01
Size
2 KB
Mime Type
text/x-php
Expires
Thu, Nov 28, 11:01 (2 d)
Engine
blob
Format
Raw Data
Handle
22581451
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