使用laravel 4.2调用控制器外部的php函数

时间:2016-07-07 06:29:43

标签: php laravel laravel-4

所以我有这个函数来获取我的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中,这样我就可以在需要时调用它。关于如何做到这一点的任何想法?非常感谢!

1 个答案:

答案 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',

代码来自这里:How do I make global helper functions in laravel 5?