php - 对子类使用语句

标签 php oop inheritance model-view-controller

我有一个 Controller 类,我必须在其中使用多个命名空间,例如:

<?php

use Respect/Validation/Validator;
use Blah/blah/Foo;

class Controller {}

现在我希望在扩展我的 Controller 类的每个 Controller 文件中,我不必一次又一次地编写 use 语句。

这是我想要的,类似于 Laravel 在他的别名部分所做的。

我将如何实现这一目标?因此,例如当我这样做时:

<?php
class HomeController extends Controller {
   public function index()
   {
       $data = '';
       Validator::arr($data); // Validator not found
   }

}

最佳答案

不幸的是,如果使用静态方法,这就是您必须做的事情。您还可以使用 Controller 方法(甚至是构造函数)将验证器注入(inject)到类中,然后子类可以使用它。您将在验证器上使用公共(public)实例变量。

好处是您不需要再次为您的依赖项指定 NS,尤其是,您的代码更清晰,因为您没有对 Validator 类的硬依赖。

关于php - 对子类使用语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639276/

相关文章:

javascript - 跨 Javascript 代码共享 getter/setter 函数

php - 无法加载资源 : Frame load interrupted - Agian

php - 如何用 php/MySQL 做循环日期

c++ - 为什么 std::logic_error 实际上不是从 std::exception 继承的?

python - 通过 __setattr__ 动态地将类实例添加到 Python 实例中

java - 如何从匿名内部类访问非最终变量?

Java:所有派生类必须实现的抽象或通用列表

php - Facebook 个人资料图像并将其下载到我的网络目录

php - 未设置 session

PHP 绑定(bind)参数() : Number of variables doesn't match number of parameters in prepared statement