2个回答
2013-05-26
展开全部
<?php
/**
*
* Zend Framework 与 PHP模板引擎SMARTY 的配置
*
*
*/
require_once 'Custom/View/Smarty/Smarty.class.php';
class Custom_View_Smarty implements Zend_View_Interface
{
/**
* Smarty object
* @var Smarty
*/
protected $_smarty;
/**
* Constructor
*
* @param string $tmplPath
* @param array $extraParams
* @return void
*/
public function __construct(array $smartyParams = array())
{
//检测SMARTY配置参数是否合格
$this->_checkRequiredOptions($smartyParams);
$this->_smarty = new Smarty;
foreach ((array) $smartyParams as $key => $value)
{
$this->_smarty->$key = $value;
}
}
/**
* Return the template engine object
* 返回模板引擎对象
* @return Smarty
*/
public function getEngine()
{
return $this->_smarty;
}
public function setScriptPath($path)
{
}
public function getScriptPaths()
{
}
/**
* Set a base path to all view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function setBasePath($path, $classPrefix = 'Zend_View')
{
}
/**
* Add an additional path to view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function addBasePath($path, $classPrefix = 'Zend_View')
{
}
/**
*
* Zend Framework 与 PHP模板引擎SMARTY 的配置
*
*
*/
require_once 'Custom/View/Smarty/Smarty.class.php';
class Custom_View_Smarty implements Zend_View_Interface
{
/**
* Smarty object
* @var Smarty
*/
protected $_smarty;
/**
* Constructor
*
* @param string $tmplPath
* @param array $extraParams
* @return void
*/
public function __construct(array $smartyParams = array())
{
//检测SMARTY配置参数是否合格
$this->_checkRequiredOptions($smartyParams);
$this->_smarty = new Smarty;
foreach ((array) $smartyParams as $key => $value)
{
$this->_smarty->$key = $value;
}
}
/**
* Return the template engine object
* 返回模板引擎对象
* @return Smarty
*/
public function getEngine()
{
return $this->_smarty;
}
public function setScriptPath($path)
{
}
public function getScriptPaths()
{
}
/**
* Set a base path to all view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function setBasePath($path, $classPrefix = 'Zend_View')
{
}
/**
* Add an additional path to view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function addBasePath($path, $classPrefix = 'Zend_View')
{
}
2013-05-26
展开全部
PHP基地项目,帮助你成为一名合格PHP工程师
除了MVC外,ZF中另外一个使用的比较充分的模块就是DB类库了。ZF的DB类库对数据库层进行了一个比较好的封装,将基本的数据库操作都转变为面向对象的操作。这里这些东西不再细讲,说另外一件事情。
当时看ZF的中文版手册,发现其中中英文混杂,并不是完整的中文版。正好赶上PHPChina总部负责翻译完后,在网上查到ZF的中文版是由厦门的Haohappy负责率领一个公益的团队进行汉化工作的,就又将译文寄给他,希望能有所帮助。从Haohappy的回信里更稍微了解了一些汉化方面的规范性的东西。由于申请汉化的SVN帐号过程稍显复杂,一时顾不上就给忘了。抽空还是上传上去,以后希望大家有空也都多多参与这样的公益事业~
使用Zend_Db类库进行多表关系处理
1. 介绍
关系型数据库中表与表之间总存在着各种各样的关系。在数据库中通过参照完整性约束可以设定一个表中的某个字段与别的表中的一个或多个字段建立联系。 Zend_Db_Table_Row类中内置了一些方法能够查询到其他表中的相关信息。
2. 定义关系
为了讲解清楚表间关系,使用下图所示的bug跟踪数据库例子。
这四张表主要用来保存软件开发项目过程中bug的跟踪信息。Accounts里存的是bug相关的人员信息;Products保存发生bug的产品;Bugs表保存bug的所有信息,包括当前bug的状态、谁发现的bug、谁被指定修改bug及由谁来检查;BugsProducts表保存bug和产品之间的关系,这是一个多对多的关系,因为一个bug可能涉及到多个产品,一个产品当然也可能有多个bug。
下面就是基于上述四张表而定义出的PHP类:
class Accounts extends Zend_Db_Table_Abstract
{
protected $_name = 'accounts';
protected $_dependentTables = array('Bugs');
}
class Products extends Zend_Db_Table_Abstract
{
protected $_name = 'products';
protected $_dependentTables = array('BugsProducts');
}
class Bugs extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_dependentTables = array('BugsProducts');
protected $_referenceMap = array(
'Reporter' => array(
'columns' => 'reported_by',
'refTableClass' => 'Accounts',
'refColumns' => 'account_name'
),
'Engineer' => array(
'columns' => 'assigned_to',
'refTableClass' => 'Accounts',
'refColumns' => 'account_name'
),
'Verifier' => array(
'columns' => array('verified_by'),
'refTableClass' => 'Accounts',
'refColumns' => array('account_name')
)
);
}
class BugsProducts extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs_products';
protected $_referenceMap = array(
'Bug' => array(
'columns' => array('bug_id'),
'refTableClass' => 'Bugs',
'refColumns' => array('bug_id')
),
'Product' => array(
'columns' => array('product_id'),
'refTableClass' => 'Products',
'refColumns' => array('product_id')
)
);
}
除了MVC外,ZF中另外一个使用的比较充分的模块就是DB类库了。ZF的DB类库对数据库层进行了一个比较好的封装,将基本的数据库操作都转变为面向对象的操作。这里这些东西不再细讲,说另外一件事情。
当时看ZF的中文版手册,发现其中中英文混杂,并不是完整的中文版。正好赶上PHPChina总部负责翻译完后,在网上查到ZF的中文版是由厦门的Haohappy负责率领一个公益的团队进行汉化工作的,就又将译文寄给他,希望能有所帮助。从Haohappy的回信里更稍微了解了一些汉化方面的规范性的东西。由于申请汉化的SVN帐号过程稍显复杂,一时顾不上就给忘了。抽空还是上传上去,以后希望大家有空也都多多参与这样的公益事业~
使用Zend_Db类库进行多表关系处理
1. 介绍
关系型数据库中表与表之间总存在着各种各样的关系。在数据库中通过参照完整性约束可以设定一个表中的某个字段与别的表中的一个或多个字段建立联系。 Zend_Db_Table_Row类中内置了一些方法能够查询到其他表中的相关信息。
2. 定义关系
为了讲解清楚表间关系,使用下图所示的bug跟踪数据库例子。
这四张表主要用来保存软件开发项目过程中bug的跟踪信息。Accounts里存的是bug相关的人员信息;Products保存发生bug的产品;Bugs表保存bug的所有信息,包括当前bug的状态、谁发现的bug、谁被指定修改bug及由谁来检查;BugsProducts表保存bug和产品之间的关系,这是一个多对多的关系,因为一个bug可能涉及到多个产品,一个产品当然也可能有多个bug。
下面就是基于上述四张表而定义出的PHP类:
class Accounts extends Zend_Db_Table_Abstract
{
protected $_name = 'accounts';
protected $_dependentTables = array('Bugs');
}
class Products extends Zend_Db_Table_Abstract
{
protected $_name = 'products';
protected $_dependentTables = array('BugsProducts');
}
class Bugs extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_dependentTables = array('BugsProducts');
protected $_referenceMap = array(
'Reporter' => array(
'columns' => 'reported_by',
'refTableClass' => 'Accounts',
'refColumns' => 'account_name'
),
'Engineer' => array(
'columns' => 'assigned_to',
'refTableClass' => 'Accounts',
'refColumns' => 'account_name'
),
'Verifier' => array(
'columns' => array('verified_by'),
'refTableClass' => 'Accounts',
'refColumns' => array('account_name')
)
);
}
class BugsProducts extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs_products';
protected $_referenceMap = array(
'Bug' => array(
'columns' => array('bug_id'),
'refTableClass' => 'Bugs',
'refColumns' => array('bug_id')
),
'Product' => array(
'columns' => array('product_id'),
'refTableClass' => 'Products',
'refColumns' => array('product_id')
)
);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询