clock-work
This commit is contained in:
36
vendor/itsgoingd/clockwork/Clockwork/Web/Web.php
vendored
Normal file
36
vendor/itsgoingd/clockwork/Clockwork/Web/Web.php
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php namespace Clockwork\Web;
|
||||
|
||||
// Helper class for serving app assets
|
||||
class Web
|
||||
{
|
||||
// Return the absolute path and a mime type of an asset, protects from accessing files outside Clockwork public dir
|
||||
public function asset($path)
|
||||
{
|
||||
$path = $this->resolveAssetPath($path);
|
||||
|
||||
if (! $path) return;
|
||||
|
||||
switch (pathinfo($path, PATHINFO_EXTENSION)) {
|
||||
case 'css': $mime = 'text/css'; break;
|
||||
case 'js': $mime = 'application/javascript'; break;
|
||||
case 'json': $mime = 'application/json'; break;
|
||||
case 'png': $mime = 'image/png'; break;
|
||||
default: $mime = 'text/html'; break;
|
||||
}
|
||||
|
||||
return [
|
||||
'path' => $path,
|
||||
'mime' => $mime
|
||||
];
|
||||
}
|
||||
|
||||
// Resolves absolute path of the asset, protects from accessing files outside Clockwork public dir
|
||||
protected function resolveAssetPath($path)
|
||||
{
|
||||
$publicPath = realpath(__DIR__ . '/public');
|
||||
|
||||
$path = realpath("$publicPath/{$path}");
|
||||
|
||||
return strpos($path, $publicPath) === 0 ? $path : false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user