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重新实现PHP脚本引擎内置函数
Mar 06 PHP
php 动态添加记录
Mar 10 PHP
PHP中如何定义和使用常量
Feb 28 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP中phar包的使用教程
Jun 14 PHP
实例解析php的数据类型
Oct 24 PHP
Laravel框架路由管理简单示例
May 07 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中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
js模仿hover的具体实现代码
2013/12/30 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
python中日期和时间格式化输出的方法小结
2015/03/19 Python
详解python实现线程安全的单例模式
2018/03/05 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
计算机学生的自我评价分享
2014/02/18 职场文书
培训科主任岗位职责
2014/08/08 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
华清池导游词
2015/02/02 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Django使用echarts进行可视化展示的实践
2021/06/10 Python
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers