【问题标题】:How to create a custom type declaration(type hinting) in PHP [closed]如何在 PHP 中创建自定义类型声明(类型提示)[关闭]
【发布时间】:2016-04-25 08:22:59
【问题描述】:

我在少数 MVC 框架中看到过这种情况

Class Hotel{

function add(AddRequest $post){
$this->save($post->all());
}

}

我想使用 php 类创建自己的类型提示,如下所示 我知道有两种方法可以做到。

类:

public function myFunction(SomeClass $instance)

带接口:

public function myfunction(SomeInterface $instance)

我找不到任何关于它的好文章。任何人都可以简要解释一下如何创建我们自己的类型提示和这样做的优势。

【问题讨论】:

  • 你的建议不会让你和我更聪明..我在谷歌搜索之前来到这里。如果你知道任何你可以建议的其他人忽略它。不要因为我的声誉点来评判我。

标签: php class laravel model-view-controller yii


【解决方案1】:

使用类型提示的第一个好处是它附带的验证和自我记录,也就是说,如果你回到你有一段时间没见过的代码,或者你在处理别人的代码,你将能够立即看到它必须传递特定事物的实例。第二个是,如果你没有传递一个必需的实例,它会抛出一个错误。 (这一切都没有任何额外的代码)

此外,接口的使用允许传递类的不同实现,但您的代码将允许它,因为您的接口应该声明所需的方法是什么(考虑不同的数据库驱动程序)。

我以前没有用过 Yii,所以我对它一无所知。另一方面,Laravel 使用 Reflection 工作,并且实际上注入了您需要的类的实例。这称为Dependency Injection

下面的链接是一个视频,它将更详细地解释这个概念:https://laracasts.com/series/laravel-5-from-scratch/episodes/16

希望这会有所帮助!

【讨论】:

  • 所以术语是依赖注入,谢谢。)
  • 关于 yii 的信息很少,它是一个 MVC 框架,与 laravel 类似,但依赖注入的使用是在后台实现的,除非在生成实例后转储实例,否则您不会注意到它。收缩简而言之,他们只是不强调它。
猜你喜欢
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2013-10-14
  • 2012-01-04
相关资源
最近更新 更多