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
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)