对我的第一个项目PHP类的建议/建议
发布时间:2020-12-13 17:03:23 所属栏目:PHP教程 来源:网络整理
导读:欢迎任何建议! 我对php类的理解非常有限,但下面是我想要采用的路线的起点.代码反映了我在脑海中看到的内容以及我希望如何开展业务.我的代码甚至看起来不错,还是我离开了基地? 你有什么想法,你将如何实现如form- validate- insertquery- sendmail-返回消息
欢迎任何建议!
我对php类的理解非常有限,但下面是我想要采用的路线的起点.代码反映了我在脑海中看到的内容以及我希望如何开展业务.我的代码甚至看起来不错,还是我离开了基地? 你有什么想法,你将如何实现如form-> validate-> insertquery-> sendmail->返回消息和错误这样的任务? 请尽量让你的答案足够简单,让我能够理解它对于理解最新情况,而不仅仅是复制/粘贴工作. 最亲切的问候, 注意:这只是一个基本结构,没有添加完整的代码. <?php //======================================= //class.logging.php //======================================== class logging { public $data = array(); public $errors = array(); function __construct() { array_pop($_POST); $this->data =($this->_logging)? is_isset(filterStr($_POST) : ''; foreach($this->data as $key=> $value) { $this->data[$key] = $value; } //print_r($this->data); de-bugging } public function is_isset($str) { if(isset($str)) ? true: false; } public function filterStr($str) { return preg_match(do somthing,$str); } public function validate_post() { try { if(!is_numeric($data['cardID'])) ? throw new Exception('CardID must be numeric!') : continue; } catch (Exception $e) { return $errors = $e->getCode(); } } public function showErrors() { foreach($errors as $error => $err) { print('<div class="notok"></div><br />'); } } public function insertQ() { $query = ""; } } //======================================= //Usercp.php //======================================== if(isset($_GET['mode'])) { $mode = $_GET['mode']; } else { $mode = 'usercp'; } switch($mode) { case 'usercp': echo 'Welcome to the User Control Panel'; break; case 'logging': require_once 'class.logging.php'; $logger = new logging(); if(isset($_POST['submit']) { if($logger->validate_post === true) { $logger->insertQ(); require_once '/scripts/PHPMailer/class.phpmailer.php'; $mailer = new PHPMailer(); $mailer->PHPMailer(); } else { echo ''.$logger->showErrors.''; } } else { echo ' <form action="'.$_SERVER['PHP_SELF'].'?mode=logging" method="post"> </form> '; } break; case 'user_logout': // do somthing break; case 'user_settings': // do somthing break; ?> 我已决定使用此方法返回错误而不是在方法中打印它们,感谢Igor的建议! catch (Exception $e) { $this->errors[] = $e->getMessage(); #ERROR DE_BUGGING ONLY================================ #print('<pre>'); #print_r($this->errors); #print('</pre>'); #===================================================== } if($this->errors) { return false; } else { return true; } 解决方法
看起来你对OOP代码有一个很好的理解.我看到声明的公共变量,甚至尝试/捕获,但我会说不要忘记“function __construct()”前面的“公共”可见性关键字 – 不是绝对必要的,但它保持良好的编码实践.
此外,我会说你在这里所做的一切都已经被编写,调试和修复,而且已经证实的产品已经被那些数十个PHP框架中的每一个所有.您提到的具体任务“form-> validate-> insertquery-> sendmail->返回消息和错误”使用我选择的框架Zend Framework非常容易.我想象Symphony,Solar,Cake等也是如此. 帮自己一个忙,不再编码已编码的内容.学习一个具有社区,定期更新和编写良好的完整文档的框架.再次,我推荐Zend Framework. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |