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 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
php通用防注入程序 推荐
Feb 26 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php时区转换转换函数
Jan 07 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
PHP如何实现跨域
May 30 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 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中heredoc与nowdoc介绍
2014/12/25 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
php中关于换行的实例写法
2019/09/26 PHP
js静态方法与实例方法分析
2011/07/04 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
python批量同步web服务器代码核心程序
2014/09/01 Python
python得到电脑的开机时间方法
2018/10/15 Python
Python数据集切分实例
2018/12/08 Python
python 调用有道api接口的方法
2019/01/03 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
如何通过python实现人脸识别验证
2020/01/17 Python
python是怎么被发明的
2020/06/15 Python
python复合条件下的字典排序
2020/12/18 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
接口可以包含哪些成员
2012/09/30 面试题
原料仓仓管员岗位职责
2014/07/08 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
师德师风剖析材料
2014/09/30 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
小学语文教师研修日志
2015/11/13 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技