?可以从代码看到这个php跳转到「a">
当前位置:Gxlcms > PHP教程 > 今日开始带两个实习生做php(2)

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

时间:2021-07-01 10:21:17 帮助过: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

			ああ											

?

?

?到目前为止,form实例化,service调用已经封装,

为完待续。

如果有好的建议请大家给指导下,我以前没有做过php,所以如果有错误请见谅。

?

1 楼 houxinyou 2013-03-22

网上有那么多现成的PHP框架为什么不用呢?

2 楼 guyanliang 20 小时前

zend-framework 干嘛不用呢

人气教程排行