【发布时间】:2018-09-25 11:59:03
【问题描述】:
为了在控制器中整合一些庞大的代码,我已经能够在函数内部执行此操作
public function myCustomFunction(Request $request){
include(app_path() . '/myFunctions/myCustomFunction1.php');
}
它确实成功了,但是通过包含,我注意到它没有携带名称空间和/或控制器中设置的其他变量。
如果它只是一个它需要的简单模型,我可以添加
Use \App\myModel;
到控制器的顶部,它运行代码就像它是控制器的一部分一样。
我遇到的问题是当我想运行验证时。我不知道在包含的页面上“使用”什么来工作。
如果我在控制器中运行我的逻辑而不做包含它可以工作,但如果放在包含它不会,我也不会出错。
我在包含页面中尝试了这个以从内部激活验证 包含文件
namespace App\Http\Controllers;
use Validator;
use Request;
模仿原始控制器,但仍然无法正常工作。我正在尝试做的事情是否可能,但我做错了什么?还是我在做一些永远不会奏效的事情?如果一切都失败了,我可以将代码保留在实际控制器中以使其工作,但我试图在复杂控制器上实现某种清晰度。比如……
public function myCustomFunction(Request $request){
if(request('value1')=='1'){
include(app_path() . '/myFunctions/myCustomFunction1.php');
}else{
include(app_path() . '/myFunctions/myCustomFunction2.php');
}
}
这个结构已经在处理不需要验证的任何东西,所以我希望有一种简单的方法可以将包含页面连接到原始控制器可以访问的同一组验证工具中。
【问题讨论】:
-
Laravel 应用使用 composer 所以你可以使用stackoverflow.com/questions/24171078/…
-
是的,我不想每次都自动加载它。它很少使用,所以我对一个解决方案很感兴趣,让我只在需要时手动包含它
-
将函数放在一个类中,让自动加载处理它。据我所知,通过 PSR-4 自动加载器(composer 也有)自动加载是懒惰的
-
另外,如果性能是一个问题,那么启用 OpCache 。在启用 OpCache 时加载文件并不是一项昂贵的操作。
-
谢谢,我是 laravel 的新手,这已经超出了我的想象。我想也许如果我知道在包含页面顶部“使用”的正确目录我可以解决,但只是将整个混乱留在控制器中不是问题,只是丑陋
标签: javascript php jquery laravel