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 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
php需登录的文件上传管理系统
Mar 21 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
php实现的双色球算法示例
Jun 20 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
PHP 身份验证方面的函数
2009/10/11 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
js数组的操作指南
2014/12/28 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
简单了解Django项目应用创建过程
2020/07/06 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Python爬取梨视频的示例
2021/01/29 Python
shell的种类有哪些
2015/04/15 面试题
医学专业五年以上个人求职信
2013/12/03 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
Hive日期格式转换方法总结
2022/06/25 数据库
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers