首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扩展核心Laravel 5功能

扩展核心Laravel 5功能
EN

Stack Overflow用户
提问于 2015-03-17 02:48:21
回答 1查看 1.7K关注 0票数 12

问题很简单--有没有可能以任何聪明的方式扩展Laravel 5的功能,或者你有时需要复制很多代码/类来实现你想要的。

因为它很宽泛,所以我给你举两个例子。

1)我想更改edit的urls和\Illuminate\Routing\ResourceRegistrarcreate。目前,我发现实现这一点的唯一方法是:扩展main照明Application以传递自己的RoutingServiceProvider,然后扩展Router,然后扩展Illuminate\Routing\ResourceRegistrar,最后在bootstrap/app.php中使用我们的扩展应用程序类。仅仅为了改变2行代码就做了相当多的修改。许多方法实际上是重复的,只是为了传递我们的自定义类,这些类的代码完全相同,只是它使用了其他名称空间中的类

2)其他类似的更改-为缓存的配置设置自定义路径-您需要再次扩展Application以覆盖方法getCachedConfigPath,然后在bootstrap/app.php中进行更改

所以问题是-这是不是需要做一些修改的方法,或者可能相同的(例如上面的两个)可以以某种方式更容易地实现,而不是扩展核心Application类和进行如此多的更改?

EN

回答 1

Stack Overflow用户

发布于 2015-05-05 17:10:28

您应该能够通过将自己的实现绑定到服务容器来覆盖核心ResourceRegistrar

代码语言:javascript
运行
复制
$this->app->bind('\Illuminate\Routing\ResourceRegistrar', function()
{
    return new MyResourceRegistrar();
});

MyResourceRegistrar扩展核心ResourceRegistrar,您应该能够覆盖editcreate方法:

代码语言:javascript
运行
复制
class MyResourceRegistrar extends \Illuminate\Routing\ResourceRegistrar
{
    // Overwrite your methods here
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29084661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档