小编Fac*_*olo的帖子

Laravel模式-工作与服务的使用

我想知道大多数开发人员如何使用这两个Laravel工具。

在Laravel中,您可以使用“服务”或“作业”来处理业务逻辑(让我们仅讨论不可排队的作业,仅讨论那些在同一流程中运行的作业)。

例如,一个用户想要创建一个实体,比如说一本书,您可以使用服务来处理该实体的创建或调度一个工作。

使用工作将是这样的:

class PostBook extends Job
{
    ...
    public function handle(Book $bookEntity)
    {
        // Business logic here.
    }
    ...
}

class BooksController extends Controller
{
    public function store(Request $request)
    {
        ...
        dispatch(new PostBook($request->all()));
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

使用服务,将是这样的:

class BookService
{
    public function store(Request $request)
    {
        // Business logic here.
    }
}

class BooksController extends Controller
{
    public function store(Request $request)
    {
        ...
        // I could inject the service instead.
        $bookService = $this->app()->make(App\Services\BookService::class);
        $bookService->store($request);
        ... …
Run Code Online (Sandbox Code Playgroud)

php model-view-controller service-layer laravel laravel-5

9
推荐指数
1
解决办法
1965
查看次数

Docker-compose:尝试运行 mongo 映像时出错

我正在尝试使用 mongo-compose 运行图像。

撰写文件是这样的:

version: '2'
services:
  db:
    image: mongo:3.4.10
    volumes:
      - ./data/mongodb:/data/db
Run Code Online (Sandbox Code Playgroud)

我跑完之后

docker-compose -p DropDesk up -d db
Run Code Online (Sandbox Code Playgroud)

我收到“完成”消息,但容器未运行。检查容器日志,我看到以下消息:

exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
Run Code Online (Sandbox Code Playgroud)

此外,如果我从撰写文件中删除卷映射,容器就可以正常工作。

我使用的是 Centos 7(内核 5),我禁用了 selinux,我使用的是 Docker 引擎 18.09)。

任何人都知道为什么会发生这种情况?我已经几个小时了,没有结果。

docker dockerfile docker-compose

6
推荐指数
1
解决办法
3277
查看次数