求php zf mvc中数据库层的合理架构方案

求php zf mvc中数据库层的合理架构方案,第1张

看到你前面几段写的就知道你是玩Java的。Java主要用Spring来实现主要的解耦功能。

PHP这里的框架很少,而且PHP也没有那么灵活的反射机制等吧。所以如果要用PHP来实现高内聚低耦合,有点难度,除非你自己搞框架。

我看discuz论坛都没有用那么复杂的技术,而且我个人觉得PHP用MVC来分,分个controller,实在没有必要。

如果楼主用了很复杂的业务逻辑,为何不用Java来做业务中心,PHP做前端,使用Java的WebService来暴露数据呢?

个人拙见,一起探讨。

MVC是M(模型)V(视图)C(控制器)的缩写,它是一种软件架构模式,用于将应用程序的逻辑、数据和界面进行分离。在MVC模式中,模型主要负责处理数据,视图主要负责呈现界面,而控制器主要负责处理用户输入和业务逻辑。这种模式可以使应用程序易于维护、扩展和测试。

PHP MVC框架就是基于MVC模式的一种Web应用程序开发框架,它提供了一套标准化的开发流程和框架组件,使开发人员可以更加高效地开发Web应用程序。常见的PHP MVC框架有Laravel、Yii、CodeIgniter等。

在PHP MVC框架中,模型通常是处理数据的类或接口,例如ORM(对象关系映射)工具、数据库访问类等。视图通常是处理用户界面的模板文件,例如使用HTML、CSS、JavaScript等技术进行页面设计和渲染。控制器是框架的核心组件,它负责接收和处理用户的请求,处理业务逻辑并将结果返回给用户界面。控制器通常会调用模型和视图组件来完成请求的处理过程。

PHP MVC框架通常提供了一套公用的组件库,包括ORM工具、缓存组件、表单验证组件等,这些组件可以跨多个项目复用,提高了开发效率。框架还提供了一些命令行工具和代码生成器,用于自动生成模型、控制器和视图等代码。

使用PHP MVC框架可以让开发人员更加专注于业务逻辑和用户体验方面的开发,而避免了一些重复性的工作,提高了开发效率和系统的可维护性。

MVC三个字母的含义:

M:Model 模型,负责数据库 *** 作。

V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。

C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。

下面是一个超级简单的MVC结构实现:

Controller.php

include 'Model.php'

include 'View.php'

class Controller {

    private $model     = ''

    private $view     = ''

    

    public function Controller(){

        $this->model    =    new Model()

        $this->view        =    new View()

    }

    

    public function doAction( $method = 'defaultMethod', $params = array() ){

        if( empty($method) ){

            $this->defaultMethod()

        }else if( method_exists($this, $method) ){

            call_user_func(array($this, $method), $params)

        }else{

            $this->nonexisting_method()

        }

    }

    

    public function link_page($name = ''){

        $links = $this->model->getLinks()

        $this->view->display($links)

        

        $result = $this->model->getResult($name)

        $this->view->display($result)

    }

    

    public function defaultMethod(){

        $this->br()

        echo "This is the default method. "

    }

    

    public function nonexisting_method(){

        $this->br()

        echo "This is the noexisting method. "

    }

    

    public function br(){

        echo "<br />"

    }

}

$controller = new Controller()

$controller->doAction('link_page', 'b')

$controller->doAction()

Model.php

class Model {

    private $database = array(

        "a"    =>    "hello world",

        "b"    =>    "ok well done",

        "c"    =>    "good bye",

    )

    

    //@TODO connect the database

    

    //run the query and get the result

    public function getResult($name){

        if( empty($name) ){

            return FALSE

        }

        

        if( in_array($name, array_keys( $this->database ) ) ){

            return $this->database[$name]

        }

    }

    public function getLinks(){

        $links = "<a href='#'>Link A</a>&nbsp&nbsp"

        $links.= "<a href='#'>Link B</a>&nbsp&nbsp"

        $links.= "<a href='#'>Link C</a>&nbsp&nbsp"

        

        return $links

    }

}

View.php

class View {

    

    public function display($output){

//        ob_start()

        

        echo $output

    }

    

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10090550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存