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 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
教大家制作简单的php日历
Nov 17 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 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
再次研究下cache_lite
2007/02/14 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Python实现的一个简单LRU cache
2014/09/26 Python
Python入门教程之运算符与控制流
2016/08/17 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
PyQt5响应回车事件的方法
2019/06/25 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
pygame实现飞机大战
2020/03/11 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
标准离婚协议书(2014版)
2014/10/05 职场文书
2015年实习单位评语
2015/03/25 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis