分类:Zend框架

Zend框架的每个模块的设置

Steven ,日(星期五)2010年1月1日下午10:40

我已经创建了一个随访到这个职位需要很少的配置,请参阅模块的布局- Zend框架

当使用Zend框架的模块,其明显的,如果你正在运行的关闭同一个应用程序的各个(子)网站, 不一定要相同的布局脚本,每个部分。 我决定去以下站点结构:

  /应用程序
     /控制器
         ... ...
     /型号
     /模块
         /默认
             /控制器
             /布局
                 /脚本
             /意见
                 /脚本
         / anotherModule
             ... ...
     /脚本

问题是每个模块的基础上成立的布局脚本。 答案是通过使用一个动作助手。 每个模块的基础上设置的布局,包括三个步骤:

  1. 的application.ini(或类似的配置设置):
      admin.resources.layout.layoutPath = APPLICATION_PATH“/模块/ ADMIN /布局/脚本”
     default.resources.layout.layoutPath = APPLICATION_PATH“/模块/默认/布局/脚本”
     member.resources.layout.layoutPath = APPLICATION_PATH“/模块/会员/布局/脚本”
     affiliate.resources.layout.layoutPath = APPLICATION_PATH“/模块/子公司/布局/脚本” 
  2. 创建你的动作助手:
      <?PHP
     / **
      *每个模块的基础上设置的布局路径
      *
      * @作者:劳合社沃特金斯<lloyd@evilprofessor.co.uk>
      * _AT_自2010-01-01
      * /
    类Pro_Controller_Action_Helper_SetLayoutPath
        延伸Zend_Controller_Action_Helper_Abstract
     {
         / **
          *基于模块设置布局路径
          * /
        公共职能preDispatch()在
         {
        	模块= $> getRequest() - > getModuleName();
    
    	    如果($引导= $> getActionController()
    	                        - > getInvokeArg(“引导”)){
    
    	         $ CONFIG = $引导 - > getOptions();
    
    	         (使用isset($ CONFIG [模块] ['资源'] ['布局'] ['layoutPath'])){
    	            美元layoutPath =
    	                 配置[模块] ['资源'] ['布局'] ['layoutPath“];
    	             $> getActionController()
    	                  - > getHelper(“布局”)
    	                  - > setLayoutPath(元layoutPath);
    	         }
        	 }
         }
     } 
  3. 最后自举的动作助手:
      ... ...
         / **
          *设置每个模块的基础上,布局脚本
          * /
        保护功能_initLayoutHelper()
    	 {
    	     - >引导(“frontController);
    	     $布局= Zend_Controller_Action_HelperBroker:addHelper(
    	        新Pro_Controller_Action_Helper_SetLayoutPath());
    	 }
     ... ... 

学说:DATETIME的默认NOW()

(星期三)30日2009年12月下午6:30

我一直在努力设立一个新的数据库架构Zend框架项目。 使用 尝试使用我的数据库模型学说的ORM 。 我需要设立架构,它允许我`的datetime`列设置一个默认的日期和时间,例如,添加一个新的消息,我得到的当前时间戳时。 经过多番搜索和尝试,我找到了解决办法,所以我共享。

架构中的YAML的文件只需做到以下几点:

消息:
   actAs:
     Timestampable:
      创建:
        名称:created_at
        类型:TIMESTAMP
        格式:YMD H:我:S
      更新时间:
        姓名:last_updated
        类型:TIMESTAMP
        格式:YMD H:我:S
  列:
     ID:
      类型:整数
      主:真
      自动增量:真
    名称:字符串(255)
    电子邮件:字符串(300)
    消息:字符串(2000)

另一方面如果你不想要一个'updated_at'列,你可以使用以下命令:

消息:
   actAs:
     Timestampable:
      创建:
        名称:created_at
        类型:TIMESTAMP
        格式:YMD H:我:S
      更新时间:
        禁用:真
  列:
     ID:
      类型:整数
      主:真
      自动增量:真
    名称:字符串(255)
    电子邮件:字符串(300)
    消息:字符串(2000)

Zend框架:基础-回顾

Steven ,星期六2009年11月28日下午10:42

最近,我的雇主支付一组我们开发Zend框架:基础课程,在这里我将我的想法和意见,对他人的过程中总结。 对于那些希望节省时间,这里是我的总结:

对于开发商还没有来得及看这门课程(Zend框架:基础)提供了一个很好的框架,向您介绍的重点领域,并给予足够的信息,以便继续大局Zend框架 对于那些花费的时间框架,并按照一个或两个教程,这当然不提供远远超出。

背景

我一直在5-6年左右一个PHP开发,并已开始工作在过去6个月的Zend Framework组件的基础上。 我已经开发和/或已对情侣的小Zend框架开发MVC的 sites.Â坦率地说,我有没有接触其他的框架,从一个角度编码点的巨额,但已经花了数小时研究项目的网站,和评估them.Â的框架和社区周边的Zend Framework,这是非常令人兴奋,似乎有巨大的可能性,在其去。

关于课程

当然是提供了超过两个小时的WebEx会话(在中间休息10分钟)。 通过了一套由Zend提供了讨论的幻灯片,在任何时候,花费的时间。 您可以使用麦克风的导师交谈,但说实话,我没有看到任何人使用任何聊天窗口多。 另外一个VMWare Ubuntu机提供的示例代码和项目设置的Zend Studio试用版。 课程负责人向与会者讲解,通过一个集成的VoIP解决方案,,或您可以拨打使用的许多全球数字拨号。

在课程中的材料包括样品留言应用程序的标题之前,简要介绍MVC模式的框架。 讨论表明,引导,Zend_Application,数据库表,数据库访问,形式,过滤,ACL,验证等,等,基本上涵盖了所有的主题,你需要获得一个基本的网站建立一个运行的所有的时间给你的工具去获得更多的先进框架中(虽然这金额“看到网站的大部分时间)。

时间是考虑到代码的一些例子,并制定的“留言”和简单的“维基”应用。 我个人认为,提供的代码或每个应用程序,然后要求我们的发展基本上是一个副本,旁边并没有真正提供一个良好的学习经验。 我宁愿开发一个应用程序类似,但又不完全相同。 示例应用程序的指导指的好处。 或者从头开始与示威者的应用将LED的可能为什么和怎样的问题,从而更好地了解一个框架,毕竟你可以看一下课程结束后的细节。

上一讲维基在导师的指导与帮助/从应用程序的工作。 课程结束后的反馈,它强调了几次通过该课程,Zend的需要反馈非常重视,其实显然,我们的版本当然是相当新的。 一些在该公司的其他开发人员将采取过程很快,所以这将是有趣的,看看如果出现这种情况。

当然风格是非正式的,允许与会者和教师之间的反馈和协作。 课程负责人很友好,平易近人(电子邮件地址共享问题),并同时从他的演讲幻灯片有点不稳,似乎完全在框架的主管。 他清楚的人使用的人教教的课程,而不是定期的框架,我很喜欢“现实世界”在这方面的经验。

总体感觉

在某些方面,我发现当然是浪费时间,在其他国家,这是非常方便的。 希望我会得到跨越清楚我的理由,并可能会提供一些​​思想或有用的反馈食品(知道我这是不可能的!)。

至于我自己,本课程的目的是过低的水平。 在通过了快速入门指南,请阅读罗布艾伦的行动Zend框架,并与一点点我没有真正得到什么太多的框架工作。 我会喜欢的当然拿起快速入门月底和培养更多的技能。

说,课程名称并明确规定“Zend框架: 基础知识 ”,并在这方面当然实现这台做出来的。 没有花时间寻找到框架的开发团队的其他成员以饱满的热情完成每届会议提出的问题真的很高兴看到。

一切都不会丢失,这是很好的花时间确认该框架的基本细节,并问了几个问题,我不是100%的地区。 也有人的时间,我坐下来的每一天,想想编码使用的框架和未来的项目,我不能够做到,否则(贵公司同意,你能想象:))的东西。 最后但并非最不重要的,你也得到一个来自Zend尼斯说,你参加课程(尽管通过电子邮件)的证书。

Zend Framework的认证

这是一个问题,在课程中不断涌现脑海,它准备为我的认证? 快速,容易的是一个响亮没有。 课程导师是很清楚,认证,你应该真正在日常使用的框架和感觉很舒服,它的用法和方法有信心与其他意见。

摘要

鉴于我上面写的一切,我将在两个简单的要点概括一切:

  • Zend框架:这当然不正是你所期望的的,它给你一个很好的介绍框架上的基础知识,从中可以建立良好的接地。 当然似乎产生浓厚的兴趣和热情的开发商之间的框架。
  • 使用Zend框架:虽然这是很好的托一些非常基本的,我觉得时间,精力和资金,采取当然可以更好地用在别处。 创建一个新的更高层次的课程,采取开发一个新的水平-这将是不错的SEEA Zend的,至少在认证和超越标准,为此,我将立即注册。

登录到DB使用Zend Framework

Steven ,2009年4月14日,星期二下午09:06

我设法得到一个网站,并与正在运行的Zend框架,一切记录很好地萤火虫/ FirePHP所以下一步是记录到DB 。 我也想记录一些额外的信息,例如,用户代理,日期和时间,GET和POST变量使用框架。 因此,为了延长这里一点点的,我就是这样做的手册:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

美元的ColumnMapping =阵列(“优先”=>“优先”,
'消息'=>'消息',
“的datetime'=>'时间戳”,
“user_agent'=>'user_agent”
“get_vars'=>'get_vars”,
“post_vars'=>'post_vars”,
“地盘”=>“现场”
);

美元writerDb =新Zend_Log_Writer_Db($ DB“,error_logging”,的ColumnMapping美元);
$记录=新Zend_Log(元writerDb);

记录 - > setEventItem(“日期时间”,日期(“YMD H:我:S'));
记录器 - > setEventItem(“user_agent”,$ _SERVER ['HTTP_USER_AGENT']);
记录器 - > setEventItem(“get_vars”的print_r($ _GET,真实));
记录 - > setEventItem(“post_vars”的print_r($ _POST,TRUE));
记录 - > setEventItem(“地盘”,地盘);

记录器 - >信息(“信息性消息”);

美元的ColumnMapping数组键是我的列名。 “优先”和“信息”是可以理解的,但Zend_Log_Writers添加额外的字段给我一些额外的信息。

显然,这是假设你有记录的工作使用的其他作家之一:)













全景主题 Themocracy

11访客在线
8位客人,3个机器人,0会员
今天最多访问:在17日上午6时54 UTC
这个月:在18-08-2011 17日上午6时54
今年:130于28-03-2011 10:40 PM UTC
所有时间:130于28-03-2011 10:40 PM UTC