虽然zendframework和dojo无缝结合,但是还是有人喜欢用现在大热的jquery。这里是将jquery作为zendframework的第三方插件的方式使用的。这种方式并不怎么好,但是这里只是给demos,具体使用方式根据个人喜好而用。
项目准备
下载zendframework框架
下载zendframework jquery plugin
项目结构
├── application
│ ├── Bootstrap.php
│ ├── configs
│ │ └── application.ini
│ ├── controllers
│ │ ├── ErrorController.php
│ │ └── IndexController.php
│ ├── models
│ └── views
│ ├── helpers
│ └── scripts
│ ├── error
│ │ └── error.phtml
│ ├── index
│ │ └── index.phtml
│ └── layout.phtml
├── library
│ └── ZendX
│ ├── Application
│ │ └── Resource
│ │ └── Jquery.php
│ ├── Console
│ │ ├── Exception.php
│ │ └── Process
│ │ ├── Exception.php
│ │ └── Unix.php
│ ├── Db
│ │ ├── Adapter
│ │ │ ├── Firebird
│ │ │ │ └── Exception.php
│ │ │ └── Firebird.php
│ │ └── Statement
│ │ ├── Firebird
│ │ │ └── Exception.php
│ │ └── Firebird.php
│ ├── Exception.php
│ ├── JQuery
│ │ ├── Controller
│ │ │ └── Action
│ │ │ └── Helper
│ │ │ └── AutoComplete.php
│ │ ├── Exception.php
│ │ ├── Form
│ │ │ ├── Decorator
│ │ │ │ ├── AccordionContainer.php
│ │ │ │ ├── AccordionPane.php
│ │ │ │ ├── DialogContainer.php
│ │ │ │ ├── TabContainer.php
│ │ │ │ ├── TabPane.php
│ │ │ │ ├── UiWidgetContainer.php
│ │ │ │ ├── UiWidgetElementMarker.php
│ │ │ │ ├── UiWidgetElement.php
│ │ │ │ └── UiWidgetPane.php
│ │ │ ├── Element
│ │ │ │ ├── AutoComplete.php
│ │ │ │ ├── ColorPicker.php
│ │ │ │ ├── DatePicker.php
│ │ │ │ ├── Slider.php
│ │ │ │ ├── Spinner.php
│ │ │ │ └── UiWidget.php
│ │ │ └── Exception.php
│ │ ├── Form.php
│ │ └── View
│ │ ├── Exception.php
│ │ └── Helper
│ │ ├── AccordionContainer.php
│ │ ├── AccordionPane.php
│ │ ├── AjaxLink.php
│ │ ├── AutoComplete.php
│ │ ├── ColorPicker.php
│ │ ├── DatePicker.php
│ │ ├── DialogContainer.php
│ │ ├── JQuery
│ │ │ └── Container.php
│ │ ├── JQuery.php
│ │ ├── Slider.php
│ │ ├── Spinner.php
│ │ ├── TabContainer.php
│ │ ├── TabPane.php
│ │ ├── UiWidgetPane.php
│ │ └── UiWidget.php
│ └── JQuery.php
└── public
├── css
│ ├── global.css
│ └── ui-lightness
│ ├── images
│ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png
│ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png
│ │ ├── ui-bg_flat_10_000000_40x100.png
│ │ ├── ui-bg_glass_100_f6f6f6_1x400.png
│ │ ├── ui-bg_glass_100_fdf5ce_1x400.png
│ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png
│ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png
│ │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png
│ │ ├── ui-icons_222222_256x240.png
│ │ ├── ui-icons_228ef1_256x240.png
│ │ ├── ui-icons_ef8c08_256x240.png
│ │ ├── ui-icons_ffd27a_256x240.png
│ │ └── ui-icons_ffffff_256x240.png
│ └── jquery-ui-1.7.3.custom.css
└── index.php
可以用命令生成标准zendframework项目结构
这里主要贴出几个关键文件
ini配置文件
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
autoloaderNamespaces[] = "ZendX"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
layout.phtml
<?php echo $this->doctype(); ?>
<html>
<head>
<?php
$this->headLink()
->prependStylesheet('/css/global.css')
->appendStylesheet('/css/ui-lightness/jquery-ui-1.7.3.custom.css');
?>
<?php echo $this->headLink(); ?>
<?php echo $this->jQuery(); ?>
</head>
<body>
<div class="header">
</div>
<div class="content">
<?php echo $this->layout()->content; ?>
</div>
<div class="footer">
</div>
</body>
</html>
indexController.php
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{
$this->view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
}
public function indexAction()
{
}
}
index.phtml
<form method="post" action="/hello/world">
<?php echo $this->datePicker("dp1",
'',
array(
'defaultDate' =>
date('Y/m/d', time())));?>
<input type="submit" value="Submit" />
</form>
大体样子就是这样,主要是配置文件和作为helper引入jquery的方法