我创建了一个简单的测试wordpress插件。该插件包含一个php文件(kreplach.php)和一个composer.json:
<?php
    /*
    Plugin Name: kreplach
    Plugin URI: http://gitlab.example.com/sales/kreplach
    Description: just a test
    Author: Foo Bartok
    Version: 1.0
    Author URI: http://example.com
    */
?>
{
    "license": "MIT",
    "name": "sales/kreplach",
    "type": "wordpress-plugin",
    "description": "just a test",
    "authors": [
        {
            "name": "Foo Bartok",
            "email": "foo@example.com",
            "homepage": "example.com"
        }
    ],
    "require": {
        "composer/installers": "*"
    }
}
在我的开发服务器上,我有以下composer.json
{
    "repositories": [
        {
            "type": "composer",
            "url": "https://wpackagist.org"
        },
        {
            "type": "vcs",
            "url": "git@gitlab.example.com:sales/kreplach.git"
        }
    ],
    "require": {
        "php": ">=5.4",
        "wpackagist-plugin/akismet": "*",
        "wpackagist-plugin/contact-form-7": "*", …我对createFromFormat的行为感到困惑.
    private function _event_date($eventdate) {
    $this->_logger->err($eventdate);
    $dt = new DateTime();
    $dt->createFromFormat(DATE_ISO8601, $eventdate);
    $formatted = $dt->format("m/d/Y");
    $this->_logger->err($formatted);
    return $formatted;
}
我多次调用_event_date.我希望当我创建一个新的DateTime对象时,它将接受$ eventdate并导致新的格式化日期.
奇怪的是(对我来说),我的输出看起来像这样:
2013-04-04 15:10:26 UTC error _event_date 2013-04-05T21:00:00-0400
2013-04-04 15:10:26 UTC error _event_date 04/04/2013
2013-04-04 15:10:26 UTC error _event_date 2013-04-12T20:00:00-0400
2013-04-04 15:10:26 UTC error _event_date 04/04/2013
2013-04-04 15:10:26 UTC error _event_date 2013-04-16T18:00:00-0400
2013-04-04 15:10:26 UTC error _event_date 04/04/2013
2013-04-04 15:10:26 UTC error _event_date 2013-04-17T19:30:00-0400
2013-04-04 15:10:26 UTC error _event_date 04/04/2013
2013-04-04 15:10:26 UTC error _event_date 2013-04-18T20:00:00-0400
2013-04-04 15:10:26 UTC error …我一直在努力让passport.js/passport-twitter使用我的项目,使用Jared Hanson的漂亮的tutoral 和它的随之而来的要点.
不用说,要点工作得很好.我只是添加我的密钥,改变我的回调网址,它只是工作.
我已将/ etc/hosts中的URL"whackypants.dev"设置为127.0.0.1.这与gist示例一起工作正常.
我的问题是,在尝试将passport,passport-twitter和connect-ensure-login与我现有的应用程序集成时,我遇到了一些相当奇怪和不一致的错误.
当我在/ login上点击"使用twitter登录"时,按照预期,我将被带到twitter并获得一个不错的oauth令牌:
http://whackypants.dev:8080/auth/twitter/callback?oauth_token=I9sGWDKRyWCJcpM3nLx3Tt3sTGRhTVYUKj03ZYIcYk&oauth_verifier=qiRQt1DGpxH2QF4zHrbKbVGj0qXTy5y2S2Sh8Ts10x7
然而,快递抛出一个500:
Express
500 failed to fetch user profile (status: 410 data: {"errors": [{"message":
"The Twitter REST API v1 will soon stop functioning. Please migrate to API v1.1.  
https://dev.twitter.com/docs/api/1.1/overview.", "code": 68}]})
at /Users/doug/whackypants/node_modules/passport-twitter/lib/passport-  
twitter/strategy.js:107:30
at passBackControl (/Users/doug/whackypants/node_modules/passport- 
twitter/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:374:13)
at IncomingMessage. (/Users/doug/whackypants/node_modules/passport-  
twitter/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:386:9)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:910:16
at process._tickCallback (node.js:415:13)
我本来希望gist示例抛出相同的错误.
甚至更奇怪:当我只使用localhost:8080/login我得到:
http://brandery-project.dev:8080/auth/twitter/callback?oauth_token=0PjNkHRMaKjG7KwlXXzUPpiFk6urANvClWK8inB58&oauth_verifier=7A2GtRUf1Q3B2HlxBVGQm4BAQIIEvdYIbBB2GZHBZ
和一个完全不同的500错误:
Express
500 Error: failed to find request token in session
at Strategy.OAuthStrategy.authenticate (/Users/doug/whackypants/node_modules/passport-   
twitter/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:124:54) …