Любые советы приветствуются! У меня очень ограниченное понимание классов php, но ниже - моя отправная точка для маршрута, который я хотел бы принять. Код - это отражение того, что я вижу в голове, и как я хотел бы заниматься бизнесом. Мой код даже выглядит нормально, или я не в порядке?Советы/предложения по моему первому проекту PHP-классы
Каковы ваши мысли, как бы вы решили достичь такой задачи, как form-> validate-> insertquery-> sendmail-> вернуть сообщения и ошибки?
Пожалуйста, постарайтесь, чтобы ваши ответы были достаточно простыми для меня, чтобы переварить, как для меня, о понимании происходящего, а не только о копировании/вставке.
С наилучшими пожеланиями, Phil.
Примечание: это базовая структура, полный код не добавлен.
<?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;
?>
Я решил использовать этот метод для возвращения ошибок, а не печатать их в методе, спасибо за совет Игорь!
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;
}
Привет, Игорь, спасибо за ваше поношение. Im создание приложения для сообщества, чтобы помочь людям регистрировать данные, которые я буду выпускать как CC, поэтому я думаю, что рамки не могут быть и речи. Более подробно я рассмотрю модель MVC, спасибо. – Philip
Smarty - с открытым исходным кодом, не должно быть проблемой для выпуска CC, я бы не подумал. – Geoff
Я посмотрю, спасибо, Джефф! – Philip