小编wen*_*ert的帖子

Zend Framework:Zend_Oauth和Zend_Service_Twitter

首先,我能够使用Oauth成功进行身份验证.我正在使用Padraic的教程:http://blog.astrumfutura.com/archives/411-Writing-A-Simple-Twitter-Client-Using-the-PHP-Zend-Frameworks-OAuth-Library-Zend_Oauth.html

现在,我的问题是我已经有一个使用Zend_Service_Twitter的Twitter模型.但由于Zend_Service_Twitter需要密码,我决定扩展它.我的新课程是这样的:

<?php

/**
 * I'm trying to extend Zend_Service_Twitter to use Oauth instead
 */

require_once 'Zend/Service/Twitter.php';

class Mytwitterapp_Twitteroauth extends Zend_Service_Twitter
{
    /**
     * Oauth
     * @var Zend_Oauth_Token_Access
     */
    protected $_token;

    /**
     * Array for Zend_Oauth_Consumer (i think)
     * @var Zend_Config_Ini
     */
    protected $_config;

    /**
     * @param object $token
     * @return void
     */
    public function __construct(Zend_Oauth_Token_Access $token)
    {
        $this->_config = new Zend_Config_Ini(APPLICATION_INI, APPLICATION_ENV);

        $this->_token = $token;
        $this->setUri('http://twitter.com');

        $client = $this->_token->getHttpClient($this->_config->oauth->toArray());
    }

    public function _init()
    {
        $client = …
Run Code Online (Sandbox Code Playgroud)

twitter zend-framework oauth

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

Eclipse(PDT)恼人地将.phtml文件锁定到PHP内容类型

我对PDT感到沮丧.我想将.phtml文件打开为HTML BUT .phtml被"锁定"到PHP内容类型,并且无法解锁它!

在HTML中打开.phtml文件会更有意义(对于Zend Framework用户),因为.phtml包含更多HTML和一些Javascript而不是PHP代码.

问题是,wtf会让Eclipse开发人员锁定某些文件类型吗?有没有办法"解锁"这个?

如果我右键单击该文件并选择打开方式 - > HTML编辑器,那么我收到此错误:

Could not open the editor: org.eclipse.wst.sse.ui.internal.StructuredTextViewer cannot be cast to org.eclipse.php.internal.ui.editor.PHPStructuredTextViewe
Run Code Online (Sandbox Code Playgroud)

帮助任何人?

非常感谢,温伯特

php eclipse

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

Zend框架1.8推荐注册插件的方法?

在Zend Framework 1.8中,在Zend Framework 1.8中注册新插件的推荐方法是什么?

<?php
/**
 * Enter description here...
 *
 */
class Wenbert_Controller_Plugin_CheckHasAccess extends Zend_Controller_Plugin_Abstract {

    /**
     * Enter description here...
     *
     * @param Zend_Controller_Request_Abstract $request
     */
    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        echo 'This plugin is called...';
    }
}
Run Code Online (Sandbox Code Playgroud)

我记得在1.8之前的版本中做过类似的事情:

require_once 'Wenbert/Controller/Plugin/CheckHasAccess.php';
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new Wenbert_Controller_Plugin_CheckHasAccess());
Run Code Online (Sandbox Code Playgroud)

在ZF 1.8中进行此操作的最佳/推荐方法是什么?

提前致谢!

-Wenbert

zend-framework

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

Django表单:具有"选择"的默认值,其中"选择"源来自数据库

假设我在forms.py中有这个表单:

CATEGORY_CHOICES= ((1,'Cat1'), 
                (2,'Cat2'), 
                (3,'Cat3'), 
                (4,'Cat4'), 
               ) 

class AddMessageForm(forms.Form):
    title = forms.CharField(max_length=250)
    groupname = forms.CharField(widget=forms.HiddenInput) 
    categories = forms.ChoiceField(choices = CATEGORY_CHOICES, required=True) 
    body = forms.CharField(widget=forms.Textarea)
Run Code Online (Sandbox Code Playgroud)

现在,CATEGORY_CHOICES是"硬编码的".这有效,但我需要在views.py中添加CATEGORY_CHOICES - 我需要做一些dbqueries来获取每个组下的"类别".

我该怎么做?

PS:我设法通过做这样的事情对我的views.py中的HiddenInput(groupname)做了同样的事情:

form = AddMessageForm(
            initial={'groupname': groupname},
        )
Run Code Online (Sandbox Code Playgroud)

我希望我明白我的问题.任何澄清等,请添加评论.

问候.w ^

django django-forms

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

Zend Studio + Zend框架

Zend Framework有这个"运行"按钮......这适用于各个php文件.但我很好奇如果您使用Zend Framework(或其他),如果所有(请求等)必须首先通过引导程序文件,然后执行您正在编辑的实际文件,这将是如何工作的?

zend-framework zend-studio

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

在Mac上使用Python2.6并尝试安装psycopg2

我是Python的新手.我现在正在运行Python2.6.我正在关注Python网站上的教程.我的问题是当我尝试按照这里的说明操作时:

http://py-psycopg.darwinports.com/

我得到的东西......

sudo port install py-psycopg
... bunch of errors here...
Error: The following dependencies failed to build: py-mx python24
Run Code Online (Sandbox Code Playgroud)

我正在运行MacOS X 10.4.

我如何使这项工作?

任何回复将不胜感激.

更新:

运行下面的代码后,我得到以下错误:

$ sudo port install py26-psycopg2
Warning: Skipping upgrade since openssl 0.9.8k_0 >= openssl 0.9.8k_0, even though installed variants "" do not match "+darwin". Use 'upgrade --enforce-variants' to switch to the requested variants.
    Warning: Skipping upgrade since readline 6.0.000_1 >= readline 6.0.000_1, even though installed variants "" do not match "+darwin". Use 'upgrade …
Run Code Online (Sandbox Code Playgroud)

python macos

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

KnockoutJS:在将数据传递给服务器之前排除计算的observable

我不确定最好的方法是什么.但是在http://knockoutjs.com/documentation/computedObservables.html中有一节说明"确定属性是否是计算的可观察值".我曾经isComputed检查过该属性是否是一个计算的observable.

我想self.formItems()在将值传递给我的服务器之前排除/删除计算的observable .

以下是我的代码的一部分,其中包含将数据发送回服务器的AJAX请求.

for (var prop in self.formItems()) {
    // console.log(ko.isComputed(self.formItems()[prop].isRadio)); //true (because this is computed)
    // console.log(ko.isComputed(self.formItems()[prop].field_label)); //false (because this is not a computed element)
    for(var form_prop in self.formItems()[prop]) {
        // console.log(form_prop+': '+ko.isComputed(self.formItems()[prop][form_prop]));
        if(self.formItems()[prop].hasOwnProperty(form_prop) && !ko.isComputed(self.formItems()[prop][form_prop])) {
            // result_no_computed_observables[prop][form_prop] = ko.toJS(self.formItems()[prop][form_prop]);
            console.log(self.formItems()[prop][form_prop]);
        }
        // ko.cleanNode(self.formItems()[prop][form_prop])
    }
}

$.ajax({
    'type': 'POST',
    'url': appUrl+'/editors/saveform/'+memberListId+'.json',
    'cache': false,
    'dataType': 'json',
    'contentType': 'application/json',
    'data': ko.toJSON({
        'id': theFormDetails.id(),
        'name': theFormDetails.name(),
        'description': theFormDetails.description(),
        'success_text': theFormDetails.success_text(),
        'success_redirect': theFormDetails.success_redirect(),
        'form_elements': self.formItems() …
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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

开始Django:执行子选择和其他复杂查询

我想在Django中执行一个半复杂的查询.例如,我想要的东西是这样的:

SELECT 
b.*,
(SELECT count(id) FROM comments c WHERE c.blog_id = b.id) AS number_of_comments
FROM blog b 
WHERE 1
Run Code Online (Sandbox Code Playgroud)

从我的PHP背景来看,Code Igniter和Zend Framework都有"查询构建器".您可以使用框架中的方法构建SQL查询.这有点像Django吗?

在Django中构建和执行复杂查询的最佳方法是什么?有没有推荐的方法/最佳做法来进行这些类型的查询?

更新:

由于下面的mherren代码,我得到了很少的改动.这是代码的更新版本.

在我的views.py中我有这个:

def index(request):
    blog_posts = Blog.objects.all().annotate(Count('comment')).order_by('-pub_date')[:5]

    return render_to_response('blog/index.html', 
    {'blog_posts': blog_posts})
Run Code Online (Sandbox Code Playgroud)

在我的模板文件(index.html)中,我有这个:

Welcome...
{% if blog_posts %}
    <ul>
    {% for post in blog_posts %}
        <li>
            <b>
            <a href="/blog/post/{{ post.id }}">{{ post.title }}</a>
            </b> ({{ post.pub_date }})<br/>
            {{ post.content }}<br/>
            {{ post.comment__count }} comment(s)<br/>
            by: {{ post.author }}<br/><br/>
        </li>
    {% endfor %}
    </ul>
{% else %}
    <p>No …
Run Code Online (Sandbox Code Playgroud)

django

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

如何在nodejs(nowjs)中处理hgetall()的结果?

我正在使用redis + nowjs.我想知道如何处理hgetall()的结果?当我尝试在客户端显示"结果"时,我只得到[object Object](它可能是来自服务器端js的字符串).

// Redis结果是

redis> HSET cards:lightning-bolt name "Lightning Bolt"
(integer) 1
redis> HSET cards:lightning-bolt text "Blah blah blah"
(integer) 1
redis> HGETALL cards:lightning-bolt
1) "name"
2) "Lightning Bolt"
3) "text"
4) "Blah blah blah"
redis>
Run Code Online (Sandbox Code Playgroud)

//在我的服务器js中

everyone.now.signalShowRedisCard = function(card_id) {
    var self = this;
    client.hgetall(("cards:%s" % card_id), function (err, res) {
        nowjs.getGroup(self.now.room).now.receiveShowRedisCard(res);
    });
}
Run Code Online (Sandbox Code Playgroud)

//在我的客户端js中(警报只输出[object Object])

now.receiveShowRedisCard = function(card_data) {
    alert("redis card: "+card_data);
    try {
      console.log('card data: '+ card_data);
    } catch(e) {
      console.log("Firebug not installed.");
    }
} …
Run Code Online (Sandbox Code Playgroud)

redis node.js nowjs-sockets

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

PHP中的Web服务身份验证的HMAC实现

我正在尝试实现一个Web服务,并需要一些(非常)简单的Authenticate来限制对服务的访问.

我发现了HMAC,我想我明白了如何实现它.但我想到了几个问题.

假设我在消费者方面有这个HTML表单.向我的服务器发出GET/POST请求时.

  1. 是否足以创建一个哈希:public_key使用secret_key
  2. 或者,我是否需要创建整个POST变量/数组的哈希?

我认为发送public_key唯一的哈希就足够了但只是想确定并问你们.

我打算这样做:

  1. 创建一个哈希 public_key
  2. 将哈希值与public_key(或client_id)和其他POST/GET变量一起放在隐藏字段或URL中作为参数.
  3. 收到我的服务器上,并通过重新创建的哈希验证对数据库的哈希public_key使用secret_key.
  4. 如果哈希匹配,我接受POST/GET请求.

你的意见?

澄清: public_key就像client unique id我可以用来确定secret key在服务器上生成哈希的内容.

php security authentication web-services hmac

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

CakePHP:Cache可以写文件但不能读取它(总是false)

我想缓存一些东西.在我的core.php配置文件中,我有这个:

//short
Cache::config('short', array(
    'engine' => 'File',
    'duration' => '+1 hours',
    'path' => CACHE,
    'prefix' => 'cake_short_'
));

// long
Cache::config('long', array(
    'engine' => 'File',
    'duration' => '+1 week',
    'probability' => 100,
    'path' => CACHE . 'long' . DS,
));
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我有这个:

$xmlpublist = Cache::read('xmlpublist');

var_dump($xmlpublist);

//if cache is still set, return cache
if($xmlpublist !== false) {
    die('cache A');
    return $xmlpublist;
}

Cache::write('xmlpublist', "test", 'short');
die('cache C');
return $xml;
Run Code Online (Sandbox Code Playgroud)

我可以看到生成文件 - /path/to/cache/cake_short_xmlpublist

但是,当我Cache::read('xmlpublist'),我总是得到bool(false).我确保我对缓存目录都有读写访问权限.

期望: 从缓存中获取值.

结果: 我得到了布尔(假) …

caching cakephp

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