工作仍在继续(缓慢地)在我的新的基于Twitter的应用程序。 在接下来的几个银行假日,我希望能再次前往该项目的势头(尽管目前的好天气)。 无论如何,我的下一个任务是创建一个为Zend框架的认证适配器。 我登录执行的工作,但Zend框架在验证适配器下降似乎像一个有吸引力的的建议,所以我创造了它... ...。
(我不打算去通过OAuth的 ,或注册与Twitter您的应用程序,还有数百名导游和一个相当简单的过程,无论如何。)
继续阅读“OAuth的/ Zend框架”Twitter的验证适配器»
尽管Twitter 的 ,在目前的仇恨,我已经设置了创建一个新的基于Twitter的应用程序。 作为管理几个账户(对个人和我的慈善工作),我一直在某个时候需要一个工具,我刚开始周围的写作(在不久的将来有更多的... ...)的人。
我读过关于Zend_Oauth_Consumer如何,它可以用来获得与使用Twitter进行交互授权 OAuth的。 一切都很好,我有我的访问键,我可以高高兴兴后对用户的代表。 那里有很多的资源,要做到这一点,所以我不会孔人。
下一步是让人们返回到该网站,登录和修改自己的帐户。 这是我达到了一个小问题。 在网站上使用的代码示例意味着我叽叽喳喳问我访问授权再次为每个登录,也不好。 通过扫描的框架,我看不到任何东西,这将使我只是请求验证。 这并不是说没有,但似乎没有不知道访问令牌已经可以调用是一种身份验证机制。
替代品来实现一个基于网站的日志或以某种方式存储在用户的访问令牌的客户端(当然加密)。 这些都不似乎是一个很好的/合适的解决方案。
继续阅读“”登录“与Twitter使用Zend Framework”»
摘要
这是一个快速后讨论我呈现创建Zend框架风格的视图文件,只有当它存在的相当简单的视图助手。 一般要求的代码,以使文件不存在将抛出一个异常。 因此,我创建了在Zend_View的包装:呈现()方法,该方法确定文件是否存在,若有呈现,否则只是简单地返回一个空字符串。
继续阅读“Zend框架:渲染如果存在'»
图片从http://www.flickr.com/photos/daniello/
摘要
在这里,我将讨论修改HTML标记创建一个视图助手,更具体的身体标记。 创建的视图助手允许类似的头部* /已经在标准inlineScript视图助手Zend Framework的视图助手的功能,但允许编程修改标签的属性。 一定退房的演示页面,并在GitHub上的代码。
动机
标准的Zend Framework的视图助手的工具精简世俗查看任务和允许修改/添加脚本和头块从视图内(一般在布局举行),无需申请丑陋的黑客(即头部* / inlineScript视图助手)。
后之际,我发现需要进行修改<body>标记,例如添加, onload事件,类或风格的属性等我也必须能够执行从其他视图助手。 看看这下面的例子...
某些网页在X网站,包括标准的道场形式。 这些道场形式在方便的视图助手举行。 一般来说,已经决定不列入的道场在body标签的 CSS类,只会增加他们在必要时。 在页面上可能有多个视图助手,需要添加自己的属性body标签(我说,这是有预谋的)
代码可以在我的Git仓库@ GitHub的演示页。
继续阅读“Zend框架车身标签视图助手”»
什么是依赖注入 (DI)?
依赖注入是一种技术,可以在软件应用程序的松耦合的对象。 一般来说,如果一个对象需要访问的另一个功能,这将是国内领先的紧密耦合的系统实例化。 通过依赖注入的实施中,我们注入准备使用所需的对象(有时也被称为控制反转 - 国际奥委会)。 看看下面的例子:
<?PHP
类决策者{
公共职能makeDecision(数组$参数){
/ /需要的数据库适配器
$ DP =新DecisionParameters();
美元parameterScore = $ DP -> getScore(参数);
/ * ... 一些更多的决策逻辑... * /
返回($ parameterScore> 50);
}
} 这一段代码,说是紧耦合的DecisionParameters对象。 以松散耦合的方式重写上面我们会碰到这样的... ...。
<PHP类的决策者{$ _dp;公共函数__construct(DP){$> _dp = $ DP;}公共职能makeDecision(数组$参数){$ parameterScore = $> _dp - > getScore($参数); / * ... ... 一些更多的决策逻辑... * /返回(美元parameterScore> 50);}} 虽然松耦合的代码获得的好处,我们增加了复杂性,每次一个对象被实例化,我们还必须实例化它的依赖,并通过这些太。 例如:
$选择=新的决策者();
回声$选择> makeDecision(阵列('努力'=>'低','回报'=>'高'));
现在变成了:
$ DP =新DecisionParameters();
$选择=新的决策者(DP);
回声$选择> makeDecision(阵列('努力'=>'低','回报'=>'高'));
一类的依赖关系的数量增加,这种情况变得更加痛苦,如果自己有依赖的依赖关系? 这可以非常迅速地成为一个对象管理的恶梦! 输入的依赖注入容器(或框架)... ...
继续阅读“快速启动Symfony的DI(依赖注入)教程”»
在这篇文章中,我期待在一个简单的前端控制器一起使用Zend_Layout的和Zend_View的展示它是如何开始分离在您的应用程序的业务逻辑和介绍。 所有的代码是在GitHub上:
赤裸裸的Zend_Layout的和Zend_View的GitHub上。
作为后续对我以前的帖子,每个模块的布局设置为Zend框架 ,我已经更新了的代码需要很少的配置,然后前(不是,它需要更多的,在您的应用程序配置了几行!)
继续阅读Zend框架的每个模块的布局设置-按照“»
这看似简单,但我是撞我的头,试图创建一个URL在一个自定义的视图助手 Zend框架。 我有路由的设置,从使用中的子域的模块,所以我不能用一个简单的硬编码的URL。
继续阅读“在Zend自定义视图助手创建”»
在我最后发表的关于Zend_Navigation,的延续sitemap.xml的自定义控制器/行动的请求路由,这是一篇关于dymnamically加入到一个Zend_Navigation容器在运行时/脚本执行页。
它的一切都很好,指定您的网页在一个INI或XML文件,但在某些时候,你将不得不改变您网站的网页,你想作为一个菜单的一部分,地图,或将包括在你的面包屑导航。 因此,我们需要做的的是我们Zend_Navigation容器在运行时添加页面。 这个例子将在添加新闻条目,博客,或网页的意见,等等。
继续阅读“在运行时动态添加页面Zend_Navigation容器»
为了直接请求/ sitemap.xml的 ,以一个自定义的控制器和Zend Framework的应用程序在您的行动,只需在您的application.ini或替代的配置文件中添加以下(如我navigation.ini):
resources.router.routes.sitemap.route =“sitemap.xml的”
resources.router.routes.sitemap.defaults.controller =索引
resources.router.routes.sitemap.defaults.action =网站地图
通过建立在适当的控制器(如我的Sitemaps索引中的控制器,地图行动)的行动,对输出的示例代码可以看出:
< PHP
类IndexController
延伸Zend_Controller_Action的
{
/ **
*呈现基于Zend_Navigation设置的一个Sitemap
* /
公共函数sitemapAction()
{
回声$>查看 - >导航() - >网站地图();
- >视图 - >布局() - > disableLayout();
- > _helper ->的ViewRenderer - > setNoRender(TRUE);
}
}
Sitemaps的可以快速方便地使用Zend_Navigation ,会产生一个巨大的快速教程(Zend Framework的教程一般都非常有用) 是Zend的演员-动态菜单的创建一个地图和面包屑。