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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP入门学习笔记之一
Oct 12 PHP
PHP系统命令函数使用分析
Jul 05 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
php实现httpRequest的方法
Mar 13 PHP
php如何实现只替换一次或N次
Oct 29 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 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容易忘记的知识点分享
2013/04/30 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
微信小程序支付PHP代码
2018/08/23 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python实现自动发送邮件
2018/06/20 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Django操作session 的方法
2020/03/09 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
如何查找和删除数据库中的重复数据
2014/11/05 面试题
优秀小学生家长评语
2014/01/30 职场文书
《金子》教学反思
2014/04/13 职场文书
争先创优演讲稿
2014/09/15 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
Redis集群的关闭与重启操作
2021/07/07 Redis
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS