发新话题
打印

网页制作的最快模式(MVC)

网页制作的最快模式(MVC)

    上周为交作业(多媒体制作),做了一个网站,关于电影的.做完之后有几点心得,想与大家分享一下
     一般来说,大家都认为在小型网站制作时采用在HTML中嵌入代码的方式是最快的(指开发速度),但是经过这次实践,我部这么认为了,原因如下:
     这个几个网页我采用了PHP+ Zend Framework+SQLITE Database(因为教室没有数据库,只好用嵌入式数据库):
     首先,制作了一个统一的基类:
require_once 'Zend/Controller/Action.php';
require_once './wps/libs/User.php';
define('__PAGE_ROOT__','./wps/controller/');

session_cache_limiter('private, must-revalidate');
session_start();
abstract class WPS_COMMON_PAGE extends Zend_Controller_Action
{
 protected function _setCookie($param,$value,$expire= 3600)
 {
  setcookie($param,$value,time() + $expire,'/');
 }
 protected static function _getDb()
 {
  return new SQLiteDatabase('./wps/database.db');
 }
 protected function _getCookie($param)
 {
  if(!empty($_COOKIE['user']))
  {
   return $_COOKIE['user'];
  }
  else return false;
 }
 protected static function _getTpl()
 {
  require_once './wps/smarty/Smarty.class.php';
  return new Smarty;
 }
 protected function _getCurUser()
 {
  if(isset($_SESSION['user']))
  {
       return unserialize($_SESSION['user']);
  }
  else return false;
 }
 protected function _isLogin()
 {
  if(!empty($_SESSION['user']))
  {
   return true;
  }
  else return false;
 }
 protected function _setCurUser(User $user)
 {
  if($user instanceof User)
  {
        $_SESSION['user'] = serialize($user);
  }
  else throw new WPS_EXCEPTION('背设置得用户不是合法用户');
 }
 protected function _logOff()
 {
  session_destroy();
 }
 public function viewsourceAction()
 {
  $path = __PAGE_ROOT__.get_class($this).'.php';
  $source = highlight_file($path , true);
  $tpl = self::_getTpl();
  $user = $this->_getCurUser();
  $tpl->assign(array('user'=>$user , 'source'=> $source));
  $tpl->display('show_source.tpl');
 }
}
?>
这个基类完成权限认证,模板,数据库(不喜欢zf的寄存器写法)
定义USER:
require_once './wps/libs/WPS_EXCEPTION.php';
class User
{
 const GUEST_RIGHT = 0;
 const USER_RIGHT  = 1;
 const SUPPER_RIGHT = 2;
 const ADMIN_RIGHT = 3;
 const SYSTEM_RIGHT = 4;
 private $_readonly = array('name','id','auth');
 public $_info = array();
 public function __construct($name , $id , $auth = 0)
 {
  $this->_info['name'] = $name;
  $this->_info['id']   = $id;
  $auth = (int) $auth;
  if($auth >= 0 && $auth <= 4)
  {
   $this->_info['auth'] = $auth;
  }
  else throw new WPS_EXCEPTION('错误的权限参数!');
 }
 public function __get($proper)
 {
  if(!isset($this->_info[$proper]))
  {
   return null;
  }
  else return $this->_info[$proper];
 }
 public function __set($proper , $value)
 {
  if(in_array($proper , $this->_readonly))
  {
   throw new WPS_EXCEPTION('不能对USER的只读属性赋值!',1);
  }
  else $this->_info[$proper] = $value;
 }
}
?>

TOP

网页制作的最快模式(MVC)

然后,让所有的页面都继承自那个基类,开发速度飞快:
如评论的页面:
require_once './wps/libs/WPS_COMMON_PAGE.php';

class CommentController extends WPS_COMMON_PAGE
{
 public function indexAction()
 {
  $tpl = self::_getTpl();
  if(!$_POST)
  {
   if(!$this->_getCurUser())
   {
    echo "请先登陆!";
    return;
   }
   $param = $this->_getAllParams();
   $tpl->assign(array('to'=>$param['id'],'referer'=>$_SERVER['HTTP_REFERER'],'user'=>$this->_getCurUser(),'ip'=>$_SERVER['REMOTE_ADDR']));
   $tpl->display('comment_add.tpl');
  }
  else
  {
   $user = $this->_getCurUser();
   $db = self::_getDb();
   if(!trim($_POST['comment']))
   {
    $tpl->assign(array('to'=>$_POST['to'],'referer'=>$_POST['referer'],'error_info'=>'请输入评论类容!','user'=>$user,'ip'=>$_SERVER['REMOTE_ADDR']));
    $tpl->display('comment_add.tpl');
    return;
   }
   $_POST['comment'] = htmlspecialchars($_POST['comment']);
   $_POST['comment'] = str_replace(" "," ",$_POST['comment']);
   $_POST['comment'] =  nl2br($_POST['comment']);
   $time = date('Y F d l',time());
   $sql = "insert into comment('to','user','time','comment') values ('$_POST[to]','$user->name','$time','$_POST[comment]')";
   if(!$db->query($sql))
   {
    echo "写入数据错误
$sql";
   }
   else
   {
    $this->_redirect($_POST['referer']);
   }
  }
 }
 public static function _getComment($id)
 {
  $db = self::_getDb();
  $items = $db->arrayQuery("select * from comment where to = $id order by id DESC;",SQLITE_ASSOC);
  return $items;
 }
}
?>
做了几个页面,麻雀虽小,肝胆俱全啊,一天就 做完了(数据是做了页面让女生输的)




此帖由 wps2000 在 2006-07-03 18:39 进行编辑...

TOP

网页制作的最快模式(MVC)

不错.

做完网站后的空间选用呢,我也有些经验想说说:

随着原中国电信集团按南北地域分家,北有网通、南有中国电信。相互之间访问对方的IDC数据都会感觉比较慢。严重影响了企业或个人用户对自己网站管理和维护速度、以及企业邮箱的使用速度。为解决电信网通互联互通的速度问题请用智能双线服务器,智能双线服务器不但解决了南北互联的速度问题,而且比CDN技术更稳定,成本更低,管理更方便.
    现有一特价租用机型如下:
    CPU处理器  Intel Pentium4 2.4 GHz 处理器 
    内存  512M DDR 内存
    硬盘  80G IDE 硬盘
    网卡  10/100/1000Mbps 网卡
    机箱  1U 标准机箱
    电源  低功耗 300W 电源
    网络带宽  100M 共享
    IP地址  单线1个IP地址/双线2个IP地址
    技术支持  7*24小时
    操作系统  Linux/Windows 2000,Windows 2003
    价格:9800元/年

  佛山双线机房 南北互通,速度最快的双线机房 
    服务器规格 1U (4.5cm*42cm*62cm) 
    IP地址                 免费提供1个IP地址 
    连接速度 4.5G接入ChinaNet骨干网/每机柜100M高速共享带宽/每服务器保证10M以上带宽 
    机房位置 广东省佛山市
    技术支持 赠送价值699元 Edns智能解析服务,实现电信网通智能识别 
    域名解释 免费域名解释 / 免费使用EDNS系统
    出口带宽 100M共享 (单机10M以上独享带宽) 
    季付价格 2200/季             
    半年付价格 3800/半年
    年付价格  7200/年 
    定购 在线下单 在线下单 在线下单
    备注 本双线机房带宽充足. 是华南唯一的双线机房.国内性价比最高的双线机房, 
 
    欢迎咨询服务器托管租用业务.详情请浏览:http://www.72e.net/?sid=tyr
    联动天下国内唯一提供智能双线租用托管服务器商,技术实力雄厚,提供7*24小时不间断服务.现在联系能免费获得免费客户通产品使用.
    客户通:让流量变客户量,最大限度提升网络营销效果,使业绩提高三倍以上.

联系人:田先生(联动天下)
欢迎访问:http://www.72e.net/?sid=tyr
电话:0757-86398207-807
业务QQ:  361015103

TOP

发新话题