小编Stu*_*own的帖子

PHP依赖注入 - 在构造函数中包含类名

我是OO的新手,但我正在四处阅读并试图学习以"正确"的方式做事.我一直在阅读依赖注入,并且可以理解为什么它是一件好事,但是我对语法并不完全清楚.

例如,在SO上查看这个基于面向PHP的面向对象的实例化和依赖注入问题我会复制完全相同的代码(如答案所示的更改),然后打印出方法返回的内容:

    $author = new Author('Mickey', 'Mouse');
print $author->getFirstName();

$question = new Question('what day is it?', $author);
print $question->getQuestion(); 
Run Code Online (Sandbox Code Playgroud)

但是我不清楚类名扮演的角色:

    public function __construct($question, Author $author)
{
    $this->author = $author;
    $this->question = $question;
}
Run Code Online (Sandbox Code Playgroud)

如果我从我的代码中删除它没有任何破坏.它只是一个人类可读的东西,以便其他人可以明确地看到存在依赖关系,或者它是否在实际使代码工作中发挥作用?

谢谢你的帮助!

php oop dependency-injection

3
推荐指数
1
解决办法
185
查看次数

在Google Addon(Google App Script)中实现可安装触发器的正确​​方法

我有一个谷歌应用程序脚本,它作为谷歌表格插件发布。该插件的功能之一是它获取单元格的值,查询 Google Big Query 表,并使用下拉选项填充下一个单元格。\xc2\xa0\xc2\xa0一旦用户选择一个选项另一个查询发送到 Big Query,依此类推。

\n

因为此活动发生在用户编辑单元格\xc2\xa0 时,我认为我需要使用\xc2\xa0 onEdit()\xc2\xa0type 功能。然而,文档明确表明我可以\xe2\x80\x99t用来onEdit()发出需要授权的此类请求(我使用服务帐户),所以我需要使用触发器,并且因为它\xe2\x80\x99s用于附加我需要使用可安装的触发器。

\n

我按照文档\xc2\xa0以编程方式执行此操作

\n
/**\n\xc2\xa0* Creates a trigger for when a spreadsheet opens.\n\xc2\xa0*/\nfunction createSpreadsheetOpenTrigger() {\n\xc2\xa0 var ss = SpreadsheetApp.getActive();\n\xc2\xa0 ScriptApp.newTrigger(\'stu\')\n\xc2\xa0 \xc2\xa0 \xc2\xa0 .forSpreadsheet(ss)\n\xc2\xa0 \xc2\xa0 \xc2\xa0 .onEdit()  //the docs actually is onOpen()\n\xc2\xa0 \xc2\xa0 \xc2\xa0 .create();\n}\n
Run Code Online (Sandbox Code Playgroud)\n

反过来,函数stu从单元格获取值并调用另一个查询 Big Query 的函数:

\n
function stu(e) {\n  var activeCell = e.range;\n  var cellValue = e.value;\n....\n....\nif (wsName === "Targets" && c < 7 && r > 1) …
Run Code Online (Sandbox Code Playgroud)

javascript google-sheets google-apps-script

1
推荐指数
1
解决办法
1331
查看次数