Php 需要的建议:名称空间应用程序Laravel的项目结构
我正在开发一个应用程序,它有两个文件夹 比方说Php 需要的建议:名称空间应用程序Laravel的项目结构,php,laravel,namespaces,Php,Laravel,Namespaces,我正在开发一个应用程序,它有两个文件夹 比方说 App/Http/Users/和 App/Http/Drivers/ 我有两个api路由设置api.php和dapi.php。 路由的前缀也分别为localhost/api/foo和localhost/dapi/bar 一切正常,但问题是有一些方法我需要为两者调用。例如保存地址信息或呼叫。现在我必须为两者制作相同的控制器,并复制大量代码。这类项目的最佳方法是什么 您应该使用 Traits是单继承语言中代码重用的一种机制 比如PHP。一种特质是为了减
App/Http/Users/
和
App/Http/Drivers/
我有两个api路由设置api.php
和dapi.php
。
路由的前缀也分别为localhost/api/foo
和localhost/dapi/bar
一切正常,但问题是有一些方法我需要为两者调用。例如保存地址信息或呼叫。现在我必须为两者制作相同的控制器,并复制大量代码。这类项目的最佳方法是什么 您应该使用
Traits是单继承语言中代码重用的一种机制
比如PHP。一种特质是为了减少单身的一些限制
继承,使开发人员能够在中自由地重用方法集
几个独立的类生活在不同的类层次结构中。这个
特征和类组合的语义是以某种方式定义的
这降低了复杂性,并避免了相关的典型问题
具有多重继承和混合
例如:
在你的背叛中:
trait SameMethods {
function call() { /*1*/ }
function saveAddress() { /*2*/ }
}
现在控制器上有了这些方法
另一种方法是使用另一个类,例如从控制器扩展的ParentController,该类包含相同的方法,并从该类扩展foo和bar
ParentController extends Controller {
function call() { /*1*/ }
function saveAddress() { /*2*/ }
}
啊好的。我必须使用单独的控制器来控制招摇和其他事情,但这些特性就像一个魅力。谢谢。我很高兴我的回答对你有帮助
namespace App\Http\Users;
class Bar extends Controller{
use SameMethods ;
/* ... */
}
ParentController extends Controller {
function call() { /*1*/ }
function saveAddress() { /*2*/ }
}
namespace App\Http\Drivers;
class Foo extends ParentController {
/* ... */
}
namespace App\Http\Users;
class Bar extends ParentController {
/* ... */
}