Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter使用什么设计模式?_Php_Design Patterns_Codeigniter - Fatal编程技术网

Php Codeigniter使用什么设计模式?

Php Codeigniter使用什么设计模式?,php,design-patterns,codeigniter,Php,Design Patterns,Codeigniter,相当直截了当的问题: 我知道Codeigniter是一个MVC框架——但是Codeigniter使用的是什么设计模式 从一开始看,这看起来像是一个门面,但我可能错了 编辑: 也许我应该为那些不使用Codeigniter的人描述它。 在Codeigniter中,您有一个控制器和模型的概念,每个控制器和模型都有各自独立的文件夹。在每个文件夹中创建一个文件: cart.php: <?php class Cart { //... } ?> 然后您还可以拥有一个模型: <?ph

相当直截了当的问题:

我知道Codeigniter是一个MVC框架——但是Codeigniter使用的是什么设计模式

从一开始看,这看起来像是一个门面,但我可能错了

编辑:

也许我应该为那些不使用Codeigniter的人描述它。
在Codeigniter中,您有一个控制器和模型的概念,每个控制器和模型都有各自独立的文件夹。在每个文件夹中创建一个文件: cart.php:

<?php

class Cart {
 //...
}
?>

然后您还可以拥有一个模型:

<?php

class User {
    function login(){...}
}
?>

在类购物车内部,您可以通过简单地使用$this->User->login()在User中使用login函数

我觉得这很有趣,因为框架生成了用户对象的对象,而程序员没有

在Codeigniter中,您有一个 控制器和一个模型,每个模型都有 他们自己单独的文件夹

他们已经设置了他们的主路由器类,以便它搜索相应的控制器和模型文件,甚至可以进行递归。这与任何设计模式无关,它只是一个文件夹组织

我觉得这很有趣,因为 框架生成用户的对象 对象,而程序员没有

是的,他们已经创造了很多现成的东西,可以随时使用。User类用于控制整个用户系统


基本上,正如您所说,所使用的主要设计模式是MVC,其余部分由特定任务的不同核心类控制。

我也会在Codeigniter上标记MVC,但我没有看到上面列出的,我认为它应该标记MVC。虽然我仍然认为它是在Facade之后建模的,因为没有$user->login(),而是有一个基本上都是子类的类……它恰好是调用类。