在 Laravel 8 中放置逻辑而不是控制器的位置
Where to put logic instead of controller in Laravel 8
我想知道将应用程序的逻辑放在哪里而不是放在控制器中。按照MVC的模式,不应该写在controller里,但是放在controller里似乎也没什么好说的从给定的大范围计数、计算和得出正确的数据。我阅读了有关事件、侦听器和服务提供者的信息,但所有说明都说要将其他内容放在那里。我尝试手动创建一些服务目录 类,但控制器似乎没有看到它,并且出现以下错误。
Error Class 'App\Services\MyService' not found
app\Services\MyServices.php
use App\Models\Lotto;
use App\Models\Duzylotek;
class MyService
{
public function suggested() {
//
}
}
app\Http\Controllers\MyController.php
namespace App\Http\Controllers;
use App\Services\MyService;
class MyController extends Controller
{
public function countnext()
{
(new MyService)->suggested();
}
}
首先:
在应用程序中创建一个名为 Services 的文件夹。
把你的服务放在那里。
给它一个命名空间:App\Services
配合使用 App\Services\YourService
在某些时候,运行 composer dump-autoload,用于注册(如果它在默认情况下不起作用)。
然后:MVC(这是一种通用模式)-具有Fat Models / Slim Controllers的原理。
在过去(Codeigniter)——我们大多数人习惯于将逻辑放在模型中。该模型现在比 Eloquent 模型轻一点。
当事情变得复杂时,我们将逻辑移至库(在库文件夹中)。
现在,服务就是 class。你只需实例化它,注入你需要的任何东西并完成工作。
我想知道将应用程序的逻辑放在哪里而不是放在控制器中。按照MVC的模式,不应该写在controller里,但是放在controller里似乎也没什么好说的从给定的大范围计数、计算和得出正确的数据。我阅读了有关事件、侦听器和服务提供者的信息,但所有说明都说要将其他内容放在那里。我尝试手动创建一些服务目录 类,但控制器似乎没有看到它,并且出现以下错误。
Error Class 'App\Services\MyService' not found
app\Services\MyServices.php
use App\Models\Lotto;
use App\Models\Duzylotek;
class MyService
{
public function suggested() {
//
}
}
app\Http\Controllers\MyController.php
namespace App\Http\Controllers;
use App\Services\MyService;
class MyController extends Controller
{
public function countnext()
{
(new MyService)->suggested();
}
}
首先:
在应用程序中创建一个名为 Services 的文件夹。
把你的服务放在那里。
给它一个命名空间:App\Services
配合使用 App\Services\YourService
在某些时候,运行 composer dump-autoload,用于注册(如果它在默认情况下不起作用)。
然后:MVC(这是一种通用模式)-具有Fat Models / Slim Controllers的原理。 在过去(Codeigniter)——我们大多数人习惯于将逻辑放在模型中。该模型现在比 Eloquent 模型轻一点。
当事情变得复杂时,我们将逻辑移至库(在库文件夹中)。
现在,服务就是 class。你只需实例化它,注入你需要的任何东西并完成工作。