今天开始带两个实习生做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,所以如果有错误请见谅。
?
相关文章推荐
• 【腾讯云】年中优惠,「专享618元」优惠券!• PHP函数及作用域知识详解• PHP中SESSION不能跨页传递有关问题的解决方法• php的静态方法调用有关问题,求大牛解答• 关于一次下传多个图片的插件有没有• 搞了两天,没有弄成,宣布失败,求高手帮忙!相关课程推荐
独孤九贱(3)_JavaScript视频教程
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。
JavaScript教程124915次播放
独孤九贱(6)_jQuery视频教程
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。 核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。
jQuery教程103339次播放
jQuery与Ajax基础与实战
jQuery是最流行的JS函数库,封装了许多实用的功能,其中最引人入胜的就是Ajax。 jQuery中的Ajax操作,语法简单,操作方便,使Ajax从未如此轻松,前端人员从此不再为与服务器异步交互而发愁,本套课程,精选了最常用的几个方法,从基本的语法到每个参数,再到具体实例进行了全面的讲解。
AJAX教程4512次播放
Git教程(60分钟全程无废话版)
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
JavaScript教程3853次播放
PHP中文网