Hallo
Ich habe soeben mit meiner ersten richtigen OOP Applikation angefangen. Und dazu habe ich einige Fragen, und da ich noch am entwickeln bin, kommen sicher noch ein paar dazu
..
Die Applikation ist klein, man kann eine Absender und Empfänger Email angeben, einen Text und eine Datei. Die Datei wird auf 'nen FTP geladen, und im Email ein Link verschickt. Soll dann für's Büro eine Art Web FTP geben für die Mitarbeiter.
Also erstmal, mein Aufbau ist im Moment so (aufs Wesentliche beschränkt):
root
-- class
-- data.class.php
-- error.class.php
-- data_excep.class.php
index.php
INDEX.PHP
(die Bedingungen sind noch leer, spielt aber hier noch keine Rolle, ich triggere (absichtlich) im Moment nur einen Fehler in der Function
checkContent())
<?php
if ($_POST['action'] == 'Speichern und Versenden' {
function __autoload ($class)
{
require 'class/'.$class.'.class.php';
}
// Variablen abfüllen
$getter = $_POST['empfaenger_email'];
$sender = $_POST['absender_email'];
$text = $_POST['nachricht'];
$data = new Data;
if ($data->checkContent($getter) && $data->checkContent($sender)) {
if ($data->checkHost($getter) || $data->checkContent($sender)) {
if ($data->checkLength($getter, 60) && $data->checkLength($sender, 60)) {
}
}
}
}
?>
Hier käme der HTML Code, lass ich mal weg.
DATA.CLASS.PHP
<?php
class Data {
private $required_host;
// Auf Inhalt prüfen
public function checkContent ($string)
{
if (strlen($string) > 5) {
if ($this->checkEmail($string)) {
return true;
} else {
// Fehler:
// ungültiges Email Format
}
} else {
throw new data_excep('<b>Fehler</b><br />Email war zu kurz!', 1);
}
}
/* Prüfen ob Email gültig ist */
public function checkEmail ($email)
{
$email = eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email);
return $email;
}
// Prüfen ob Email Host erlaubt ist
public function checkHost ($email)
{
if (explode($mail, $this->required_host)) {
return true;
} else {
// Fehler:
// "xy.com" nicht im emailadresse vorhanden
}
}
// Maximale Dateinamen Länge prüfen
public function checkLength ($string, $max_length)
{
if (strlen($string) <= $max_length) {
return true;
} else {
// Fehler:
// Text zu lang!
}
}
}
?>
DATA_EXCEP.CLASS.PHP
<?php
class data_excep extends Exception {
}
?>
Die Error Klasse ist noch nichts und wird deshalb nicht aufgelistet. Da kommen auch schon meine Fragen:
1. Bin ich so auf dem richtigen weg? Oder ist der Code schon verkehrt? Wo kommt eigentlich die Ablaufsteuerung rein? Habs ja jetzt wie ihr seht in die index.php gepackt, ist das ok so (für eine kleine Anwendung)?
2. Kann mir jemand helfen hier ein sauberes Error Handling einzubauen? Ich kenne das error_report zeugs und den Error Handler, hab aber keine Ahnung wie ich das jetzt mit der Exception Klasse von PHP verbinden kann..
3. Sehe ich das richtig: try{}/catch{} verwendet man ausserhalb der Klasse, throw{} innerhalb? Ist das komplett falsch?
Wie setze ich die richtig ein?
Das wärs erstmal, user-158ke schonmal für eure Antworten!
- user-279