上周为交作业(多媒体制作),做了一个网站,关于电影的.做完之后有几点心得,想与大家分享一下
一般来说,大家都认为在小型网站制作时采用在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;
}
}
?>