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 抓取网页图片并且另存为的实现代码
Mar 24 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
PHP的全局错误处理详解
Apr 25 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
关于laravel 日志写入失败问题汇总
Oct 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
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
探讨如何把session存入数据库
2013/06/07 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
取得传值的函数
2006/10/27 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
用python与文件进行交互的方法
2018/03/01 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python制作mysql数据迁移脚本
2019/01/01 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
寄语十八大感言
2014/02/07 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
小学生寒假家长评语
2014/04/16 职场文书
合伙经营协议书范本
2014/04/18 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
欢送会主持词
2015/07/01 职场文书
文艺委员竞选稿
2015/11/19 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
Python的property属性详细讲解
2022/04/11 Python