Php 如何在laravel控制器中包含一些文件
我有一个文件可以计算一些东西,比如说税Php 如何在laravel控制器中包含一些文件,php,laravel,Php,Laravel,我有一个文件可以计算一些东西,比如说税Tax.php,它位于某个文件夹中,比如说/MyCalculations/Taxes/Tax.php 现在我想在我的控制器中访问这个文件,我如何访问这个文件,或者如何访问这个文件中的那些计算 Tax.php的示例代码: <?php namespace MyCalculations/Taxes; class Taxes extends Enginge { //some calculations here } ?> 我用的是拉
Tax.php
,它位于某个文件夹中,比如说/MyCalculations/Taxes/Tax.php
现在我想在我的控制器中访问这个文件,我如何访问这个文件,或者如何访问这个文件中的那些计算
Tax.php的示例代码:
<?php namespace MyCalculations/Taxes;
class Taxes extends Enginge {
//some calculations here
}
?>
我用的是拉威尔。谢谢编辑composer.json文件并将“文件”部分添加到其中:
"autoload": {
...
"files": [
"app/MyCalculations/Taxes/Tax.php"
]
},
然后,您只需执行:
composer dump-autoload
并在任何地方使用它们
如果您使用的是PHP 5.5,还可以使用traits:
<?php namespace MyCalculations/Taxes;
trait TaxesTraits {
function calculateX()
{
}
}
class Taxes extends Enginge {
use TaxesTraits;
public function calculate()
{
$x = $this->calculateX();
}
}
您可以先为应用程序创建名称空间,然后在应用程序目录中放置一个文件夹,可能是app/Projectname。
然后你可以把你的计算放在那里。然后通过添加自动加载项目中的所有内容
"autoload": {
"classmap": [
"..."
],
"psr-0": {
"Projectname": "app/"
}
},
下载到composer.json文件,然后进行转储自动加载。然后您可以在控制器中使用依赖项注入,如下所示:
use Projectname\MyCalculations\Taxes\Tax;
class TaxController extends BaseController {
protected $tax;
public function __construct(Tax $tax)
{
$this->tax = $tax;
}
public function getTaxValue()
{
$value = Input::get('value');
return $this->tax->getAwesome($value);
}
@Belmark Caday:如果您计划拥有多个自定义类,我建议为您的自定义类设置一个全局名称空间和一个新的库目录。这是一篇关于该主题的好文章-我过去使用过类似的结构,并且对结果感到满意。@nielisano先生,如果我使用blade显示这些计算,也可以将use Projectname\MyCalculations\Tax\Tax代码>在myview.blade.php中访问这些数据,或者我应该通过控制器来访问这些数据?您可以为此创建一个外观,这样您就可以执行Tax::getAwesome($value),但我更愿意在将变量传递给视图之前在演示器中执行此操作。查看并阅读Laravel文档中关于立面的内容。