Benim ilk proje PHP Sınıflar için Önerileri / öneri

2 Cevap php

Any advice is welcome! I have a very limited understanding of php classes but below is my starting point for the route I would like to take. The code is a reflection of what I see in my head and how I would like to go about business. Does my code even look ok, or am I way off base?

Düşüncelerinizi nasıl form-> doğrulamak-> insertquery-> sendmail-> dönüş iletileri ve hataları gibi bir görevi gerçekleştirmek hakkında gitmek istiyorum, nelerdir?

Lütfen deneyin ve bana benim gibi sindirmek için yeterince basit cevaplar tutmak onun üzerine ve sadece bir kopyala / yapıştır işi ne oluyor anlamak hakkında.

Kindest regards, Phil.

Note: This is a base structure only, no complete code added.

<?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;






?>

Ben, tavsiye Igor için teşekkür hataları dönen yerine yönteminde bunları yazdırmak için bu yöntemi kullanmaya karar verdim!

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;    
            }

2 Cevap

Eğer OOP kod iyi bir anlayışa sahip gibi görünüyor. Ben önünde "kamusal" görünürlük anahtar unutma derdi olsa ben, / yakalar denemek bile ortak bildirilen değişkenler görmek ve "fonksiyonu __ construct ()" değil kesinlikle gerekli, ama iyi kodlama uygulamaları ile tutar.

Ayrıca, ben yapıyorsun burada her şey, yazılı ayıklanmış ve sabit ve PHP onlarca her biri tarafından zaten layık üretim orada çerçeveler kanıtlanmıştır söyleyebilirim. Bahsettiğiniz belirli bir görev, "form-> doğrulamak-> insertquery-> sendmail-> iletileri ve hataları dönmek" Zend Framework, benim seçim çerçevesi ile inanılmaz kolay. Ve ben aynı vb Senfoni, Güneş, Kek için geçerlidir hayal ediyorum

Kendinize bir iyilik yapın ve önceden kodlanmış olan ne kodlama durdurun. Bir bir topluluk var çerçeve, düzenli güncellemeler ve iyi yazılmış kapsamlı belgeler öğrenin. Yine, ben tavsiye Zend Framework.

Akla gelen ilk tavsiye: sunum ayrı mantık. Sen Smarty gibi bazı şablon motoru kullanarak başlayabilirsiniz. Bunu tüm karışık devam edecek olursa, yakında büyük bir dökümü olacaktır.

Ayrıca ayrı dosyalarından sınıf tanımlarını içerecek şekilde çalışın ve bir sonraki adım olarak ben mantık modelleri ayırmak için Model-View-Controller gibi bazı desen benimseyerek öneriyoruz.

Ben çok derin koduna kazma olmadan düşünebilirsiniz budur.