仓酷云

标题: PHP网站制作之了解PHP中的MVC编程之MVC框架简介 [打印本页]

作者: 小女巫    时间: 2015-2-4 00:22
标题: PHP网站制作之了解PHP中的MVC编程之MVC框架简介
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...编程       【甚么是MVC?】

  MVC是一个可让你把“三个局部(即MVC的全称,Model、View、Controller)”谐调地构成一个庞杂使用法式的概念。一辆汽车就是一个在实际生涯中十分好的MVC例子。咱们看车都看两个View(显示)局部:外部和内部。而这两个都离不开一个Controller(掌握者):司机。刹车体系、偏向盘和其他操控体系代表了Model(模子):他们从司机(Controller)那边获得掌握办法然后使用到外部和外不雅(View)。

  【收集上的MVC】

  MVC框架所涵盖的概念相当复杂而且极端天真。根基的概念就是,你有一个独自的掌握器(如index.php)用来掌握一切创立在参数恳求基本上的框架内使用法式。这个掌握器凡是包括了(最小水平上)一个界说模子的参数、一个事务和一个GET参数。如许掌握器就可以确认一切的恳求然后运转响应的事务。打个例如来讲,一个像如许/index.php?module=foo&event=bar的恳求很有能够就是用来载入一个名叫foo的类,然后运转foo::bar()[就是个中的bar()函数]。如许做的优点有:

  一个对应一切使用法式的接口

  同时保护一个使用法式内有数的代码十分费事,由于每段代码都有本人的绝对途径、数据库链接、验证等等。而如许做就免去你在这方面的懊恼,答应你兼并偏重复利用代码

  【为何要创立作者本人的MVC框架?】

  迄今为止,我没有见到过太多用PHP写的MVC框架。现实上我仅仅晓得一个-Solar,是完整用PHP5写的。别的一个是Cake,一个试图成为PHP的RoR(Ruby on Rails-一个Ruby言语开源收集框架)。我本人对这两个框架都有一些不写意的中央:它们都没有益用到PEAR,Smarty等所包括的现有代码;如今的Cake还对照杂乱;最初,Solar是一个绝大局部由一团体写的作品(我有意说其作者Paul不是一个坏人或好法式员)。这些成绩能够其实不会让你否定它们,并且很有能够你基本不关怀这些成绩。然而正由于如斯,我请列位尽量地审阅它们。

  【老体例】

  假如回到2001看本人写的代码,作者有能够找到一个叫template.txt的文件,它看起来像如许:www.phpv.net 转载请注明出处

<?php
 require_once('config.php'); // Other requires, DB info, etc.

 $APP_DB = 'mydb';
 $APP_REQUIRE_LOGIN = false; // Set to true if script requires login
 $APP_TEMPLATE_FILE = 'foo.php'; // Smarty template
 $APP_TITLE = 'My Application';

 if ($APP_REQUIRE_LOGIN == true) {
  if (!isset($_SESSION['userID'])) {
   header("Location: /path/to/login.php");
   exit();
  }
 }

 $db = DB::connect('mysql://'.$DB_USER.':'.$DB_PASS.'@localhost/'.$APP_DB);
 if (!PEAR::isError($db)) {
  $db->setFetchMode(DB_FETCHMODE_ASSOC);
 } else {
  die($db->getMessage());
 }

 // Put your logic here
 // Output the template

 include_once(APP_TEMPLATE_PATH.'/header.php');
 include_once(APP_TEMPLATE_PATH.'/'.$APP_TEMPLATE_FILE);
 include_once(APP_TEMPLATE_PATH.'/footer.php');
?>
  天哪,只是看这些代码城市让我有畏缩的愿望。这段代码的概念就是确保每个使用法式都能合用于这个处置办法,好比我可以复杂地将template.txt拷进myapp.php,改动一些变量,瞧,它就可以运转起来了。虽然如斯,这个组织周密的处置办法存在一些严重的弱点:

  假如我的老板想让作者用myapp.php在一些情形下输入PDF、一些情形下输入HTML、一些情形下(直接提交的XML恳求)SOAP,我该怎样办?

  假如这个使用法式需求IMAP或LDAP验证,我该怎样办?

  我该若何处置各类分歧的代码(包含编纂、晋级和删除)?

  我该若何处置多级验证(办理员 vs. 非办理员)?
我该若何启用输入缓存?www.phpv.net 转载请注明出处

  【新体例】

  将一切器材都扔进这个MVC框架,你会发明生涯是如斯复杂。请对照以下代码:

<?php
 class myapp extends FR_Auth_User
 {
  public function __construct()
  {
   parent::__construct();
  }

 public function __default()
 {
  // Do something here
 }

 public function delete()
 { }

 public function __destruct()
 {
  parent::__destruct();
 }
}

?>
  注重这段代码明显不是用来链接到一个数据库、判别一个用户是不是已上岸、或输入任何其他信息。掌握器把握了一切的一切。

  假如我想验证LDAP,我可以创立FR_Auth_LDAP。掌握器可以辨认某些输入办法(好比$_GET['output'])并可以随时转换成PDF或SOAP。事务处置delete,只担任删除,其他的它都不论。由于这个模块具有一个FR_User类的实例,它可以复杂地判别一个用户是不是已上岸等等。Smarty,作为模板引擎掌握缓存是天经地义的,然而掌握器一样可以掌握一局部缓存。

  夙昔面讲的老体例到MVC体例关于良多人来说多是一个全新、生疏的概念,然而一旦你转换到了如许一个概念,那末要转归去将是件相当坚苦的工作。


[1] [2] [3] [4] [5] 下一页  

  实现固定数量的几张图片的上传;再如调试软件ZendStudio的使用,看了很多次老师的应用,但总感觉用的不顺手,不懂那么多的数据值,到底哪一个才是真正的问题所在;还有如数据库语句的封装,我只会用简单的函数来进行封装。
作者: 金色的骷髅    时间: 2015-2-4 12:46
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 小魔女    时间: 2015-2-9 22:39
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 海妖    时间: 2015-2-20 14:06
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: 蒙在股里    时间: 2015-3-1 12:55
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 因胸联盟    时间: 2015-3-10 17:01
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 仓酷云    时间: 2015-3-16 15:03
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 简单生活    时间: 2015-3-22 23:16
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 飘灵儿    时间: 2015-3-24 19:54
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 小女巫    时间: 2015-3-28 23:07
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 再见西城    时间: 2015-4-1 22:50
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者: 冷月葬花魂    时间: 2015-4-5 16:42
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: admin    时间: 2015-4-5 16:48
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 精灵巫婆    时间: 2015-4-15 13:20
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 老尸    时间: 2015-4-16 23:12
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 谁可相欹    时间: 2015-4-21 21:13
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 变相怪杰    时间: 2015-5-1 16:09
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 乐观    时间: 2015-5-12 07:27
本文当是我的笔记啦,遇到的问题随时填充
作者: 变相怪杰    时间: 2015-6-6 10:32
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 不帅    时间: 2015-6-13 21:05
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 飘飘悠悠    时间: 2015-6-16 13:06
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 若相依    时间: 2015-6-27 22:31
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2