您好,欢迎访问一九零五行业门户网

今日开始带两个实习生做php(2)

今天开始带两个实习生做php(2)
今天开始带两个实习生做php(1)的框架个人觉得太垃圾了,于是重新写了一个。
首先是index.php,工程的入口。
index.php
?

?可以从代码看到这个php跳转到「app/login/controller/logincontroller.php?m=init」url上
那就看下logincontroller.php
?
assign(form, $form); $smarty->display('view/login/login.htm'); } /** * 開始ボタンを押す処理 */ public function start() { // フォームを取得する $form = parent :: post2form(app_login); // serviceを呼び出す parent :: doservice(app_login, method_start, $form, false); // smartyを作成する $smarty = parent :: getsmarty(); $smarty->assign(form, $form); $smarty->display('view/login/login.htm'); }}// controllerをインスタンスする$logincontroller = new logincontroller;// メソッドを取得する$method = $logincontroller->getmethod();// 実行する$logincontroller-> $method ();?>
?这个代码里面有很多用到了父类的方法,我们再看下父类吧
?
basecontroller.php
template_dir = template_dir; $smarty->compile_dir = compile_dir; $smarty->config_dir = config_dir; $smarty->cache_dir = cache_dir; $smarty->left_delimiter = left_delimiter; $smarty->right_delimiter = right_delimiter; // プロジェクト名を設定する $smarty->assign(p_name, p_name_val); return $smarty; } /** * request_uriからメソッドを取得 */ public function getmethod() { $uri = $_server['request_uri']; // uriがempty以外の場合 if (!stringutils :: isempty($uri)) { $arrurl = parse_url($_server['request_uri']); // uri中メソッド名を設定設定する場合 if (!stringutils :: isempty($uri)) { $arrparams = null; parse_str($arrurl['query'], $arrparams); return $arrparams['m']; // uri中メソッド名を設定しない場合 } else { return method_init; } // uriがemptyの場合 } else { return method_init; } } /** * $_post中の値からformにセットする */ public function post2form($name) { require_once (app_path . $name . '/form/' . $name . 'form.php'); $formname = $name . 'form'; // formを初期化する $form = new $formname; // formのすべての変数を取得する $class_var_arr = get_class_vars(get_class($form)); foreach ($class_var_arr as $name => $value) { if (!stringutils :: isempty(@ $_post[$name])) { $form-> $name = @ $_post[$name]; } } return $form; } /** * $_get中の値からformにセットする */ public function get2form(& $form) { // formのすべての変数を取得する $class_var_arr = get_class_vars(get_class($form)); foreach ($class_var_arr as $name => $value) { if (!stringutils :: isempty(@ $_get[$name])) { $form-> $name = @ $_get[$name]; } } } /** * serviceを呼び出す * * @param string $name 機能名 * @param string $methodname 呼び出されたメソッド名 * @param object $form フォーム * @param boolean $isopentrans true:トランザクション必要 false:トランザクション必要がない */ public function doservice($name, $methodname, & $form, $isopentrans) { require_once (app_path . $name . '/service/' . $name . 'service.php'); // todo $isopentrans $servicename = $name . 'service'; $service = new $servicename; $service-> $methodname ($form); // todo $isopentrans }}?>
?常量文件
?
const.php
?

?工具文件:
?
stringutils.php
?

?
?
?html代码
login.htm
ああ
2013年春のアンケート調査 社員番号 user_id}]>
?
?
?到目前为止,form实例化,service调用已经封装,
为完待续。
如果有好的建议请大家给指导下,我以前没有做过php,所以如果有错误请见谅。
?
1 楼 houxinyou 2013-03-22   网上有那么多现成的php框架为什么不用呢?
2 楼 guyanliang 20 小时前   zend-framework 干嘛不用呢
其它类似信息

推荐信息