Php 供应商文件夹中的控制器-我的控制器-正确的方法是什么?

Php 供应商文件夹中的控制器-我的控制器-正确的方法是什么?,php,laravel,api,design-patterns,Php,Laravel,Api,Design Patterns,因此,我使用github ticketit()中的一个包,该包包含控制器 我将其集成到fresh laravel应用程序中 现在,我想在我的应用程序中添加一个API端点,我的问题是 我应该从供应商目录中的ticketit包复制控制器并创建我的app/http/controllers文件夹,还是应该访问供应商中的控制器?或者有什么好的设计我应该做 所以我计划做的是 Route::get('api/v1/getdata','TicketsController@data'); Route::get(

因此,我使用github ticketit()中的一个包,该包包含控制器

我将其集成到fresh laravel应用程序中

现在,我想在我的应用程序中添加一个API端点,我的问题是

我应该从供应商目录中的ticketit包复制控制器并创建我的app/http/controllers文件夹,还是应该访问供应商中的控制器?或者有什么好的设计我应该做

所以我计划做的是

Route::get('api/v1/getdata','TicketsController@data');

Route::get('/getdata','TicketsController@data');
请帮忙设计

如果我试图编辑供应商文件夹中的控制器并将其上载到服务器中,确保不会上载

顺便说一句,我使用的是Laravel 5.4和Laravel passport。

,您可以使用它指向您自己的自定义控制器

您可以通过更改管理面板
设置->配置->初始->路由

例如:

如果要更改单个节目的行为,则可能需要更改
TicketsController@show
方法

  • 创建新控制器并使其扩展
    Kordy\Ticketit\Controllers\ticketcontroller

  • vendor/kordy/ticketit/src/routes.php
    复制到
    App\Http\ticketit\u routes.php

  • $main\u route\u path
    类更改为新的自定义类:
    route::resource($main\u route\u path,'App\Http\Controllers\SomeController',…

  • 转到ticketit管理面板/菜单
    settings->configuration->Initial->routes
    ,并将路由设置为
    app/Http/ticketit_routes.php
    文件的完整路径


  • 您可以直接使用用户
    Route::get('path','Kordy\Ticketit\Controllers\TicketsController@data')
    是的,但是如果我想修改票证控制器,并且如果我在服务器中上传它以确保供应商不会被上传。我如何修改它并上传更改?通常你不应该修改供应商文件。你可以创建新的控制器,然后包括(扩展)来自供应商的控制器。然后,您可以覆盖现有函数,并在路由中调用此新方法。对此方法不是100%确定,但我认为这可能会起作用。我明白了,所以在这种情况下,我必须从供应商文件复制控制器以覆盖这些方法,并创建if($request-wantsJson())返回响应()else render view..感谢您的帮助@Timook,它不起作用,我已经从供应商包的控制器扩展了我的控制器,但它仍然重定向到包的控制器,包中也有路由。有什么想法吗?