php – 通过插件添加路由到laravel
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 通过插件添加路由到laravel,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1492字,纯文字阅读大概需要3分钟。
内容图文
我正在设计一个特定的Web框架,允许我们的团队将新组件添加为插件,然后允许客户使用控制面板添加这些插件或模块.
使用CodeIgniter很简单,只需将控制器复制到controllers文件夹中,客户端模块就可以通过URL app / index.php / module / function查找
但是Laravel不允许这样的动态路由.
无论如何都要扩展路由配置而不用手动编辑routes.php?
解决方法:
我知道我有点迟了但是在Laravel 5.4我们可以做到这样的事情:
步骤1创建您的包并在其中创建服务提供者.
步骤2在laravel配置应用程序中注册您的包服务提供商.
步骤3现在创建一个sperate routes服务提供者,其中包含以下内容
namespace MyPackage\Providers;
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Route;
class MyPackageRouteServiceProvider extends RouteServiceProvider
{
protected $namespace='MyPackage\Controllers';
public function boot()
{
parent::boot();
}
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
protected function mapApiRoutes()
{
Route::prefix('Mypackage\api')
->middleware('api')
->namespace($this->namespace)
->group(__DIR__ . '\..\Routes\api.php');
}
protected function mapWebRoutes()
{
Route::prefix('Mypackage')
->middleware('web')
->namespace($this->namespace)
->group(__DIR__ . '\..\Routes\web.php');
}
}
注意:我正在考虑有Routes文件夹并包含web.php和api.php文件.根据您的问题,您想要动态加载它,您可以拥有一个构造函数,并根据您的方便传递包名,前缀和命名空间.
步骤4现在最后一步是注册服务提供商,您可以在包服务提供商中调用类似的内容:
public function boot()
{
$this->app->register('Mypackage\Providers\MyPackageRouteServiceProvider');
}
希望这可以帮助.干杯
内容总结
以上是互联网集市为您收集整理的php – 通过插件添加路由到laravel全部内容,希望文章能够帮你解决php – 通过插件添加路由到laravel所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。