PHP有一个var_dump()函数,它输出一个对象的内部内容,显示一个对象的类型和内容.
例如:
class Person {
private $firstName;
private $lastName;
public function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$person = new Person('Jon', 'Smith');
var_dump($person);
Run Code Online (Sandbox Code Playgroud)
将输出:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Run Code Online (Sandbox Code Playgroud)
Java中的等价物会做同样的事情吗?
如何验证Google身份验证访问令牌?
我需要以某种方式查询Google并询问:[给定访问令牌]是否对[example@example.com] Google帐户有效?
简短版本:
很清楚如何使用通过Google身份验证Api :: OAuth身份验证的Web应用程序提供的访问令牌,然后从一系列Google服务中请求数据.目前尚不清楚如何检查给定的访问令牌是否对给定的Google帐户有效.我想知道怎么做.
长版:
我正在开发一个使用基于令牌的身份验证的API.在提供有效的用户名+密码或从N个可验证服务中的任何一个提供第三方令牌时,将返回令牌.
其中一项第三方服务是Google,允许用户使用其Google帐户对我的服务进行身份验证.稍后将扩展到包括雅虎帐户,可信赖的OpenID提供商等.
基于Google的访问的示意图:
alt text http://webignition.net/images/figures/auth_figure002.png
"API"实体完全由我完全控制."公共接口"实体是任何基于Web或桌面的应用程序.一些公共界面在我的控制之下,其他公共界面不在我手中,而其他公共界面我甚至都不知道.
因此,我无法信任在步骤3中提供给API的令牌.这将与相应的Google帐户电子邮件地址一起提供.
我需要以某种方式查询Google并询问:此访问令牌是否对example@example.com有效?
在这种情况下,example @ example.com是Google帐户的唯一标识符 - 用户登录其Google帐户时使用的电子邮件地址.这不能被视为Gmail地址 - 有人可以拥有一个没有Gmail帐户的Google帐户.
Google文档明确说明了如何通过访问令牌从多个Google服务中检索数据.似乎没有任何东西可以说明如何在一开始就检查给定的访问令牌是否有效.
更新 令牌对N个Google服务有效.我不能尝试使用Google服务的令牌作为验证它的方法,因为我不知道给定用户实际使用的所有Google服务的哪个子集.
此外,我永远不会使用Google身份验证访问令牌来访问任何Google服务,仅仅是为了验证所谓的Google用户实际上是他们所说的人.如果还有另一种方法,我很乐意尝试.
在通过HTTP发送使用YAML构建的数据时,最合适的MIME类型是什么?
解释为什么给定的选择是最合适的将是非常感谢.
例:
> GET /example.yaml
< Content-Type: ????
<
< --- # Favorite movies
< - Casablanca
< - North by Northwest
< - Notorious
Run Code Online (Sandbox Code Playgroud)
可能的选择:
text/yaml
text/x-yaml
application/yaml
application/x-yaml
Run Code Online (Sandbox Code Playgroud) 用户操作和应用程序响应之间总是会发生延迟.
众所周知,响应延迟越低,应用程序即时响应的感觉就越大.众所周知,通常不会感觉到高达100ms的延迟.但是延迟110毫秒呢?
什么是可以察觉的最短应用程序响应延迟?
我对任何可靠的证据,一般的想法和意见感兴趣.
在面向文章的页面(例如博客文章)中,<h1>元素(级别1标题)通常用于标记:
<title>元素),或什么是最好的选择,为什么?
对于网站所有者,他们可能想要向世界喊出他们的网站/博客的名称,使用网站标题周围的1级标题似乎是有道理的.
从您尝试与用户沟通的角度来看,网站标题的相关性较低 - 文章内容是您尝试传达的内容,而所有其他网站内容都是次要内容.因此,使用<h1>文章标题似乎是最好的.
我觉得<h1>元素应该关注文章标题,而不是网站标题或其他内容.无论如何,这似乎不是一个受欢迎的公约.
例子:
<h1>的文章标题,并为网站的标题锚<h1>可言,<h2>对文章标题和网站标题锚<h1>的网站标题和文章的标题锚这是三个站点中的三种不同方法,您可能会期望对正确的语义标记进行强烈考虑.
我认为乔尔在杰夫紧随其后是正确的.我很惊讶37Signals人的加成选择.
对我来说,这似乎是一个非常简单的决定:与文章的消费者最相关的是什么?文章标题.因此将文章标题包装在<h1>元素中.完成.
我错了吗?我还缺少进一步的考虑因素吗?我对吗?如果是这样,为什么' <h1>for article title'方法不常用?
决定使用<h1>元素的位置是不变的,就像我说的那样?或者还有一些主观考虑因素吗?
更新:感谢目前为止的所有答案.对于如何使用<h1>文章标题而不是网站标题有利于可用性和可访问性(或者不是,视情况可能或不是),我真的很感激.基于事实而不仅仅是个人假设的答案将获得许多奖励积分!
我听说过很多关于语义网的内容,但我仍然不确定它是什么.我们现在知道的网络有何不同?
我正在创建一个grails服务,它将通过Java库与第三方REST API进行交互.Java库需要通过URL,用户名和密码来获取REST API的凭据.
我想将这些凭据存储configuration/Config.groovy在一起,使它们可用于服务,并确保在服务需要它们之前可以使用凭据.
我很欣赏grailsApplication.config控制器可以使用,并且通过服务方法可以向服务提供相关的配置值,例如:
package example
class ExampleController {
def exampleService
def index = { }
def process = {
exampleService.setCredentials(grailsApplication.config.apiCredentials)
exampleService.relevantMethod()
}
}
Run Code Online (Sandbox Code Playgroud)
package example
import com.example.ExampleApiClient;
class ExampleService {
def credentials
def setCredentials(credentials) {
this.credentials = credentials
}
def relevantMethod() {
def client = new ExampleApiClient(
credentials.baseUrl,
credentials.username,
credentials.password
)
return client.action();
}
}
Run Code Online (Sandbox Code Playgroud)
我觉得这种方法有点缺陷,因为它取决于控制器调用setCredentials().将凭证自动提供给服务将更加健壮.
这两个选项中的任何一个都是可行的(我目前对grails不够熟悉):
grailsApplication.config.apiCredentials在创建服务时注入控制器中的服务?
在服务上提供某种形式的构造函数,允许在实例化时将凭据传递给服务吗?
将凭证注入服务是理想的.怎么可以这样做?
我经常使用以下命令列出两次提交之间更改的文件:
git diff --name-only SHA1 SHA2
Run Code Online (Sandbox Code Playgroud)
它给出了一个像这样的文件列表:
/src/example/file1 /src/example/file2 /src/example/file3
这有多么有用几乎没有尽头.
我真的希望能够在每个文件旁边显示对更改状态的简要参考,指示文件是否已添加,修改或删除.
这是一个展示这个概念的例子:
git diff --name-only --and-how-me-the-change-status SHA1 SHA2
Run Code Online (Sandbox Code Playgroud)
A /src/example/file1 M /src/example/file2 D /src/example/file3
更改状态(A,M,D)仅作为示例显示,我不介意这是什么,只要它是明确的.
我知道我可以使用该--diff-filter选项仅列出添加的文件,或仅列出已修改的文件或仅列出已删除的文件.使用此选项意味着我必须运行三个命令才能获得三个文件名列表.这很好,但可能会更好.
是否有一个命令我可以运行给我上面的示例输出?
该命令rake db:migrate将所有相关的新迁移应用于数据库,并在输出中列出已应用的迁移.
我想事先知道将应用哪些迁移,以便记下生产环境中预期的更改列表.
是否有一个我可以结合使用的选项rake db:migrate,它将告诉我在不实际应用的情况下将应用哪些更改?
对于特定的Java代码段,我想测量:
我是一个相对Java的新手,并不熟悉如何实现这一点.我已经被提到了JMX,但是我不确定如何使用JMX,JMX看起来有点"沉重",我正在寻找的东西.
理想情况下,我想要一些可以告诉我想要测量的测量类,可以选择start()在代码段之前调用方法,然后调用stop()方法.相关指标将记录到我指定的文件中.
例如:
import com.example.metricLogger;
metricLogger logger = new metricLogger();
logger.setLogPath(pathToLogFile);
logger.monitor(executionTime);
logger.monitor(memoryUsage);
logger.monitor(cpuLoad);
logger.start();
/* Code to be measured */
logger.stop();
Run Code Online (Sandbox Code Playgroud)
在Java中是否有任何标准/通用/传统方式来实现这一目标?
这种测量用于一次性性能比较,因此我不会寻找任何生产中的长期监测过程.
我很高兴被引用到教程或外部示例,并且不希望在这里得到完整答案.也就是说,如果能够实现上述任何简单的事情,那么一个现实的例子就会非常好.
java ×2
semantics ×2
api ×1
dbmigrate ×1
git ×1
git-diff ×1
google-oauth ×1
grails ×1
html ×1
http ×1
jmx ×1
measurement ×1
mime ×1
mime-types ×1
monitoring ×1
oauth ×1
perception ×1
performance ×1
php ×1
rake ×1
rdf ×1
semantic-web ×1
sparql ×1
usability ×1
web-services ×1
yaml ×1