加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

对我的第一个项目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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读