所以我有这个函数来获取我的Laravel项目所在的剩余内存。问题是有两个控制器需要检查剩余的内存。
这就是它在我的控制器里面的样子
private function convGB($bytes, $unit = "", $decimals = 2)
{
$units = array('B' => 0, 'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4,
'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8);
$value = 0;
if ($bytes > 0)
{
if (!array_key_exists($unit, $units))
{
$pow = floor(log($bytes)/log(1024));
$unit = array_search($pow, $units);
}
$value = ($bytes/pow(1024,floor($units[$unit])));
}
if (!is_numeric($decimals) || $decimals < 0) {
$decimals = 2;
}
return sprintf('%.' . $decimals . 'f '.$unit, $value);
}
private function getMem()
{
$ds = disk_total_space(substr(base_path(), 0, 2));
$fs = disk_free_space(substr(base_path(), 0, 2));
$ffs = disk_free_space(substr(base_path(), 0, 2));
if ($ds >= 1073741824)
{
$ds = number_format($ds / 1073741824, 2) . ' GB';
}
elseif ($ds >= 1048576)
{
$ds = number_format($ds / 1048576, 2) . ' MB';
}
elseif ($ds >= 1024)
{
$ds = number_format($ds / 1024, 2) . ' KB';
}
elseif ($ds > 1)
{
$ds = $ds . ' B';
}
elseif ($ds == 1)
{
$ds = $ds . ' B';
}
else
{
$ds = '0 size';
}
if ($fs >= 1073741824)
{
$fs = number_format($fs / 1073741824, 2) . ' GB';
}
elseif ($fs >= 1048576)
{
$fs = number_format($fs / 1048576, 2) . ' MB';
}
elseif ($fs >= 1024)
{
$fs = number_format($fs / 1024, 2) . ' KB';
}
elseif ($fs > 1)
{
$fs = $fs . ' B';
}
elseif ($fs == 1)
{
$fs = $fs . ' B';
}
else
{
$fs = '0 size';
}
$converted = $this->convGB($ffs);
return array( $ds , $fs , $converted);
}
所以我想把这个函数放在一个外部PHP中,这样我就可以在需要时调用它。关于如何做到这一点的任何想法?非常感谢!
答案 0 :(得分:1)
在app / Helpers目录中创建一个新文件,命名为AnythingHelper.php我的助手的一个例子是:
<?php
function getDomesticCities()
{
$result = \App\Package::where('type', '=', 'domestic')
->groupBy('from_city')
->get(['from_city']);
return $result;
}
通过以下命令为
生成帮助程序的服务提供程序php artisan make:provider HelperServiceProvider
在新生成的HelperServiceProvider.php的register函数中添加以下代码
require base_path().'/app/Helpers/AnythingHelper.php';
现在在你的config / app.php加载这个服务提供商,你就完成了
'App\Providers\HelperServiceProvider',