|
<p> 上周为交作业(多媒体制作),做了一个网站,关于电影的.做完之后有几点心得,想与大家分享一下<br /> 一般来说,大家都认为在小型网站制作时采用在HTML中嵌入代码的方式是最快的(指开发速度),但是经过这次实践,我部这么认为了,原因如下:<br /> 这个几个网页我采用了PHP+ Zend Framework+SQLITE Database(因为教室没有数据库,只好用嵌入式数据库):<br /> 首先,制作了一个统一的基类:<br /><?php<br />require_once 'Zend/Controller/Action.php';<br />require_once './wps/libs/User.php';<br />define('__PAGE_ROOT__','./wps/controller/');</p><p>session_cache_limiter('private, must-revalidate');<br />session_start();<br />abstract class WPS_COMMON_PAGE extends Zend_Controller_Action<br />{<br /> protected function _setCookie($param,$value,$expire= 3600)<br /> {<br /> setcookie($param,$value,time() + $expire,'/');<br /> }<br /> protected static function _getDb()<br /> {<br /> return new SQLiteDatabase('./wps/database.db');<br /> }<br /> protected function _getCookie($param)<br /> {<br /> if(!empty($_COOKIE['user']))<br /> {<br /> return $_COOKIE['user'];<br /> }<br /> else return false;<br /> }<br /> protected static function _getTpl()<br /> {<br /> require_once './wps/smarty/Smarty.class.php';<br /> return new Smarty;<br /> }<br /> protected function _getCurUser()<br /> {<br /> if(isset($_SESSION['user']))<br /> {<br /> return unserialize($_SESSION['user']);<br /> }<br /> else return false;<br /> }<br /> protected function _isLogin()<br /> {<br /> if(!empty($_SESSION['user']))<br /> {<br /> return true;<br /> }<br /> else return false;<br /> }<br /> protected function _setCurUser(User $user)<br /> {<br /> if($user instanceof User)<br /> {<br /> $_SESSION['user'] = serialize($user);<br /> }<br /> else throw new WPS_EXCEPTION('背设置得用户不是合法用户');<br /> }<br /> protected function _logOff()<br /> {<br /> session_destroy();<br /> }<br /> public function viewsourceAction()<br /> {<br /> $path = __PAGE_ROOT__.get_class($this).'.php';<br /> $source = highlight_file($path , true);<br /> $tpl = self::_getTpl();<br /> $user = $this->_getCurUser();<br /> $tpl->assign(array('user'=>$user , 'source'=> $source));<br /> $tpl->display('show_source.tpl');<br /> }<br />}<br />?><br />这个基类完成权限认证,模板,数据库(不喜欢zf的寄存器写法)<br />定义USER:<br /><?php<br />require_once './wps/libs/WPS_EXCEPTION.php';<br />class User<br />{<br /> const GUEST_RIGHT = 0;<br /> const USER_RIGHT = 1;<br /> const SUPPER_RIGHT = 2;<br /> const ADMIN_RIGHT = 3;<br /> const SYSTEM_RIGHT = 4;<br /> private $_readonly = array('name','id','auth');<br /> public $_info = array();<br /> public function __construct($name , $id , $auth = 0)<br /> {<br /> $this->_info['name'] = $name;<br /> $this->_info['id'] = $id;<br /> $auth = (int) $auth;<br /> if($auth >= 0 && $auth <= 4)<br /> {<br /> $this->_info['auth'] = $auth;<br /> }<br /> else throw new WPS_EXCEPTION('错误的权限参数!');<br /> }<br /> public function __get($proper)<br /> {<br /> if(!isset($this->_info[$proper]))<br /> {<br /> return null;<br /> }<br /> else return $this->_info[$proper];<br /> }<br /> public function __set($proper , $value)<br /> {<br /> if(in_array($proper , $this->_readonly))<br /> {<br /> throw new WPS_EXCEPTION('不能对USER的只读属性赋值!',1);<br /> }<br /> else $this->_info[$proper] = $value;<br /> }<br />}<br />?></p> |
|