Zend Framework教程之模型Model用法简单实例


Posted in PHP onMarch 04, 2016

本文实例讲述了Zend Framework教程之模型Model用法。分享给大家供大家参考,具体如下:

附一个简单粗俗的例子。只是大概说明了用法:如果要深究,可以自己跟踪源码了解。

model_demo1

│  .project
│  .buildpath
│  .zfproject.xml

├─.settings
│      org.eclipse.php.core.prefs
│      .jsdtscope
│      org.eclipse.wst.jsdt.ui.superType.name
│      org.eclipse.wst.jsdt.ui.superType.container

├─application
│  │  Bootstrap.php
│  │
│  ├─configs
│  │      application.ini
│  │
│  ├─controllers
│  │      IndexController.php
│  │      ErrorController.php
│  │
│  ├─models
│  │      Test.php
│  │      ModelTest.php
│  │
│  └─views
│      ├─scripts
│      │  ├─index
│      │  │      index.phtml
│      │  │
│      │  └─error
│      │          error.phtml
│      │
│      └─helpers
├─docs
│      README.txt

├─library
│  ├─app
│  │      Test.php
│  │
│  ├─myApp
│  │      Test.php
│  │
│  ├─Zend
│  │      Test.php
│  │
│  ├─AppTest
│  │      Test.php
│  │
│  └─AppTest2
│          Test.php

├─public
│      index.php
│      .htaccess

└─tests
    │  phpunit.xml
    │  bootstrap.php
    │
    ├─application
    │  └─controllers
    │          IndexControllerTest.php
    │
    └─library

如下是从上到下,每一个文件的源码,不再详细说明:

/model_demo1/application/configs/application.ini

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
autoloadernamespaces.app = "App_"
autoloadernamespaces.my = "MyApp_"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
[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

/model_demo1/application/controllers/IndexController.php

<?php
class IndexController extends Zend_Controller_Action {
  public function init() {
    /* Initialize action controller here */
  }
  public function indexAction() {
    var_dump ( Application_Model_Test::getUserInfo () );
    App_Test::echoAppTest ();
    MyApp_Test::echoAMyAppTest ();
    Zend_Test::echoZendTest ();
    AppTest_Test::echoAppTestTest ();
    $auto_loader = Zend_Loader_Autoloader::getInstance();
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
        'basePath' => '/www/model_demo1/application',
        'namespace' => '',
        'resourceTypes' => array(
            'model' => array(
                'path' => 'models',
                'namespace' => 'Model'
            )
        )
    )
    );
    $auto_loader->pushAutoloader($resourceLoader);
    $auto_loader->registerNamespace(array('AppTest2_'));
    AppTest2_Test::echoAppTest2Test();
    Model_ModelTest::echoModelModelTest();
    exit ();
  }
}

/model_demo1/application/models/ModelTest.php

<?php
class Model_ModelTest{
  static function echoModelModelTest(){
    echo 'Model_ModelTest<br/>';
  }
}

/model_demo1/application/models/Test.php

<?php
class Application_Model_Test {
  static public function getUserInfo() {
    return array (
        'user_name' => '张三',
        'user_gender' => '男'
    );
  }
}

/model_demo1/application/Bootstrap.php

<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
  protected function _initAutoload() {
    $app = $this->getApplication ();
    $namespaces = array (
        'AppTest'
    );
    $app->setAutoloaderNamespaces ( $namespaces );
    return $app;
  }
}

/model_demo1/library/app/Test.php

<?php
class App_Test {
  static public function echoAppTest() {
    echo 'App_Test<br/>';
  }
}

/model_demo1/library/AppTest/Test.php

<?php
class AppTest_Test{
  static public function echoAppTestTest(){
    echo 'AppTestTest<br/>';
  }
}

/model_demo1/library/AppTest2/Test.php

<?php
class AppTest2_Test{
  static public function echoAppTest2Test(){
    echo 'AppTest2Test<br/>';
  }
}

/model_demo1/library/myApp/Test.php

<?php
class MyApp_Test {
  static public function echoAMyAppTest() {
    echo 'MyApp_Test<br/>';
  }
}

/model_demo1/library/Zend/Test.php

<?php
class Zend_Test{
  static public function echoZendTest(){
    echo 'ZendTest<br/>';
  }
}

没有贴出的代码,是创建项目默认的代码。

记住:遵循约定规则,就会避免不必要的麻烦。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第八天
Oct 09 PHP
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
在PWS上安装PHP4.0正式版
Oct 09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 PHP
PHP中list方法用法示例
Dec 01 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 06 PHP
基于PHP实现等比压缩图片大小
Mar 04 #PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 #PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 #PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 #PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 #PHP
PHP生成和获取XML格式数据的方法
Mar 04 #PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 #PHP
You might like
php导入模块文件分享
2015/03/17 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
详解php中反射的应用
2016/03/15 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
vue--vuex详解
2019/04/15 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
selenium+python实现自动登录脚本
2018/04/22 Python
opencv实现简单人脸识别
2021/02/19 Python
基于python实现地址和经纬度转换
2020/05/19 Python
如何用python写个模板引擎
2021/01/14 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
高山背包:High Sierra
2017/11/23 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
四种会话跟踪技术
2015/05/20 面试题
夜大自我鉴定
2013/10/31 职场文书
影视广告专业求职信
2014/09/02 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
遗嘱格式范本
2015/08/07 职场文书