Qu'est-ce que le framework mvc ? Comment développer le framework mvc en php (avec code)

不言
Libérer: 2023-04-03 12:14:01
original
3123 Les gens l'ont consulté

Le framework MVC développé avec PHP ne sera peut-être pas en mesure de comprendre sa signification pour ceux qui débutent avec PHP, mais cela n'a pas d'importance. Dans l'article d'aujourd'hui, je vais vous parler en détail de ma compréhension du framework MVC et de la manière de le développer. le framework MVC avec la méthode PHP.

L'utilisation de MVC ajoute de nombreuses opérations de base de données au programme, ce qui dégrade les performances. Cela m'a vraiment surpris. MVC n'est qu'un framework et n'a rien à voir avec les opérations de base de données. MVC fournit uniquement un modèle de développement de programmation clair. Tant que vous le gérez bien, il est impossible d'effectuer de nombreuses opérations de base de données inutiles. Si un MVC permet à un programmeur d’effectuer beaucoup plus d’opérations sur la base de données sans le savoir, ce n’est certainement pas une bonne architecture MVC. Je pense que MVC n'a besoin que de fournir un cadre de développement simple. Il n'est pas nécessaire d'intégrer de nombreuses classes de bibliothèque. Il est préférable que les programmeurs choisissent d'utiliser des classes de bibliothèque.

Je n'ai pas étudié en profondeur la théorie de MVC. Pour moi personnellement, le modèle est une encapsulation de base de données en appelant la méthode du modèle, vous pouvez obtenir les données correspondantes, mais le programmeur n'a pas besoin de s'en soucier. les détails de mise en œuvre. En développement réel, il est probable qu’une table de base de données corresponde à un modèle.

Par exemple, une table d'informations utilisateur userinfo correspond à un utilisateur modèle. En appelant la méthode add() de l'utilisateur modèle, vous pouvez ajouter une donnée à la base de données. Grâce à select(), vous pouvez. implémenter la mise à jour de la requête peut être mise à jour. Dans le même temps, le modèle doit être indépendant du type de base de données spécifique, peu importe que vous utilisiez MySQL, Oracle ou SQL. serveur.

En même temps, je ne recommande pas d'utiliser ROR dans le développement WEB Il est tellement pratique et rapide d'utiliser le langage SQL pour des requêtes multi-tables complexes, et les performances sont meilleures. Si un programmeur n’a même pas de connaissances en SQL, je ne pense pas qu’il soit un programmeur qualifié. Par conséquent, je fournis une méthode de requête dans mon modèle pour implémenter une requête SQL directe.

Ce qui suit est un résultat approximatif du développement du framework MVC en PHP.

< ?   
class module{   
var $mysql;//数据库操作类,可以是mysql,oracle,sql等等   
var $tbname;//模型对应的表名称   
var $debug=false;//是否是调试模式   
function module($tbname,$db=&#39;&#39;){}//构造函数   
function _setDebug($debug=true){}
//开启或者关闭调试模式   
function add($row,$tbname=&#39;&#39;){}
//新增加一条记录   
function query($strsql){}//直接查询sql语句   
function count($where=&#39;&#39;,$tbname=&#39;&#39;){ }
//计数统计   
function select($where=&#39;&#39;,$tbname=&#39;&#39;){}
//查询   
function delete($where=&#39;&#39;,$tbname=&#39;&#39;){}
//删除满足条件的一个记录   
function update($set,$where,$tbname=&#39;&#39;){}
//更新指定记录   
function detail($where,$tbname=&#39;&#39;){}
//详细显示一条记录   
}   
?>
Copier après la connexion

Dans ce modèle, j'utilise des tableaux et des champs de base de données pour correspondre. Au début de PHPBEAN, les objets étaient utilisés pour correspondre. Mais plus tard, j'ai senti que cette méthode de développement de modèles MVC en PHP n'était pas bonne en PHP et ajoutait beaucoup de classes inutiles. Il est plus pratique et préférable d'utiliser des tableaux (les tableaux en PHP sont en effet une bonne chose, bien meilleurs que JAVA).

Dans la démo ci-dessous, j'ai utilisé la base de données mysql pour la démonstration, et la classe d'opération de base de données a été modifiée par rapport à l'une de mes classes de bibliothèque d'origine.

Ci-dessous, l'utilisation de la démo sera expliquée en détail. ^_^
Ajoutez

< ?   
require_once(SITE_PATH.&#39;/libs/phpbean.class.php&#39;);   
require_once(SITE_PATH.&#39;/libs/mysql.class.php&#39;);   
$phpbean=new phpbean();   
global $phpbean;   
$mysql=new mysql("localhost","****","****","52site");   
$phpbean->register(&#39;db&#39;,$mysql);   
unset($mysql);   
?>
Copier après la connexion

au index.php du package d'origine. Ce code de modèle MVC de développement PHP sert principalement à enregistrer MYSQL dans le registraire. Concernant le principe d'utilisation du registraire, vous. je peux lire les deux articles que j'ai traduits.
Créez ensuite un nouveau fichier mysqlController.class.php avec le code suivant :

< ?   
/**   
* MVC演示demo   
* 仅仅实现最基本的MVC功能,不包含安全处理,数据过滤,及其他优化措施。   
* @author:feifengxlq   
* @since:2007-1-24   
* @copyright http://www.php.cn/
*/   
class mysqlController   
{   
var $module;   
function mysqlController(){   
require_once(SITE_PATH.&#39;/libs/module.class.php&#39;);   
$this->module=new module(&#39;52site_siteinfo&#39;);//52site_siteinfo为表名称   
$this->module->query("set names &#39;gb2312&#39;");//如果是MYSQL5请加上这句   
}   
function indexAction(){   
print_r($this->module->select());//这样实现了读取数据   
}   
}   
?>
Copier après la connexion

Ce qui précède consiste d'abord à ajouter un modèle au constructeur du contrôleur. Appelez ensuite la méthode model dans indexAction pour afficher les données. Ceci implémente la liste de requêtes la plus simple.

Recommandations associées :

Créez votre propre framework PHP MVC

Comprenez-vous MVC en php ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal