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
浅析memcache启动以及telnet命令详解
Jun 28 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php快速排序原理与实现方法分析
May 26 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 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 中的str_replace 函数总结
2007/04/27 PHP
php中使用url传递数组的方法
2015/02/11 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
深入浅出学习python装饰器
2017/09/29 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python基础教程之异常详解
2019/01/10 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
民主生活会汇报材料
2014/12/15 职场文书
无罪辩护词范文
2015/05/21 职场文书
小组口号霸气押韵
2015/12/24 职场文书
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
介绍一下28个JS常用数组方法
2022/05/06 Javascript
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python