0

Laravel 文档中,我找不到基本 Laravel 函数的可能返回值,例如:

Mail::send(...)       // does this return true/false if successful?
Input::get('foo')     // what is returned when foo is not set?
Request::segment(2)   // what is returned if there isn't a second segment?

我是否忽略了某些事情,还是我们只是通过试验/错误来解决这些问题?

4

1 回答 1

2

TL;博士

查看 Laravel API 网站以获取所有源代码。它写得非常好,易于理解。您应该能够回答所有这些问题并快速学习新功能。

==========================================

Laravel 像它一样大而强大,因此很难记录每一件小事。但是,使用 API 站点,您可以找到所有这些问题的答案,并发现大量整洁的、未记录的小技巧和款待。

Laravel API

Mail::send()例子

以你的Mail::send()例子为例。在 API 站点,我们可以搜索 Mail 并浏览到Illuminate/Mail/Mailer.php 页面

从那里我们可以查看send() 第 94 行方法的代码,并看到它返回对$this->sendSwiftMessage($message).

从那里,我们可以查看sendSwiftMessage() 第 281 行方法的代码,并看到它返回了对$this->swift->send($message).

查看 Mail 类,我们了解到它$this->swift只是 Swift_Mailer 类Line 56的一个实例。Laravel 文档确实提到Mail 类是流行的 Swift_Mailer 的包装器。

无论如何,现在我们需要找到send()Swift_Mailer 库中的方法返回什么。我们在 Swift_Mailer网站上看到,该send()方法实际上返回了它被发送到的收件人的数量,或者0失败时的收件人数量。

Swift_Mailer 本身实际上有更多有用的信息,例如实际失败的收件人是谁。然而,Laravel 目前还没有公开这些信息。如果您想访问Swift_Mailer的其他功能,则必须扩展Mail该类或Swift_Mailer直接使用该类。

这实质上意味着,是的,您可以使用真/假检查来确定成功,因为0将评估为假,并且任何正的非零数字将在 PHP 中评估为真。但是,我也相信 Laravel 会在出现问题时抛出异常,就像在大多数情况下一样,但这可能是一个,原谅双关语,它不会抛出Exception.

虽然这有点啰嗦,而且可能是更复杂的例子之一。Laravel 提供的绝大多数东西都是快速、易于查找和理解的。

浏览 API 是发现框架中大量未记录功能的好方法。例如,只要去Str上课,你就会看到很多可以使用的整洁、有用的东西。

Input::get()例子

无需赘述,Input::get最终调用array_get()帮助函数Link,它将按优先级顺序返回以下内容。

  1. 存储在键中的值。
  2. 传递给Input::get()方法的默认值。
  3. 无效的
于 2013-11-12T21:46:59.797 回答