php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2011, 16:32  
HHP
Neuer Benutzer
 
Registriert seit: 14.12.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
HHP befindet sich auf einem aufstrebenden Ast
Standard php komplexe module/Programme, Struktur

Hallo Community,

bin nicht so oft hier, deshalb war ich mir auch nicht so wirklich sicher, ob es hier rein passt. Egal

Zu meinem Problem:

Es geht um die Struktur von Komplexen php-scripten.
Um es anhand eines Beispiels zu verdeutlichen:

Wir haben eine art Facebook änliche Konzept. Nur statt videos zur vereinfachung Texte(Posts). Jeder User kann Posts erstellen, verwalten, usw.
Soweit zum Rahmen. Immer wenn ich an komplexen Projekten arbeite hab ich das Problem dass ich mich frage, ob ich mein Progamm richtig struckturiere.

Im moment würde ich es so struckturieren:

index.php //enthält unteranderem eine Funktion handle_content() die sich in
handler.php befindet

handler.php //handle_content($para) sucht mit einer if Klausel nach
der Richtigen Seite z.B. Login(if($para="login"{}).
Wenn $para=login ist, dann werden zei Funktionen ausgeführt.
frt_login() und bck_login(). frt_login stellt das Frontend zur
verfügung, also den HTML-Part(<form action="...) wären
bck_login überprüft, ob nach dem abschicken des Formulars
die Felder richtig sind.(So ungefähr, schwierig das so ganz
wieder zu geben.

Ich nehme an dass das im ersten Moment nicht ganz verständlich rüber kommt, deshalb hier nochmal etwas code:

index.php
PHP-Code:
handle_content(); 
handle.php
PHP-Code:
function handle_content()
{
     
$page=$_GET["page"];

     if(
$page=="login")
     {
          
$value[0]=$_GET[0];
          
$value[1]=$_GET[1];

          
frt_login($value);
          
bck_login($value);
     }     

frontend.php
PHP-Code:

function frt_login($value)
{
    global 
$lang;
    
display_form("start"$lang['login'], 00);
    
display_form("initialise","?p=login"00);
    
display_form("text"$lang['email'],"1"$value[0]);
    
display_form("password"$lang['password'],"2"$value[1]);
    
display_form("submit"$lang['login_button'], 00);
    
display_form("stop"000);
}

function 
display_form($type$value1$value2$value3)
{
    if(
$type=="start")
    {
        
$form_code="<div class=\"box\"><h1>".$value1."</h1>";
    }
    if(
$type=="initialise")
    {
        
$form_code="<form action=\"".$value1."\" method=\"POST\">";
    }
    elseif(
$type=="stop")
    {
        
$form_code="</form></div>";
    }
    elseif(
$type=="text")
    {
        
$form_code="<label><span>".$value1."</span><input type=\"text\" class=\"input_text\" name=\"".$value2."\" id=\"name\" value=\"".$value3."\"/></label>";
    }
    elseif(
$type=="password")
    {
        
$form_code="<label><span>".$value1."</span><input type=\"password\" class=\"input_text\" name=\"".$value2."\" id=\"name\" value=\"".$value3."\"/></label>";
    }
    elseif(
$type=="select")
    {
        
$form_code="";
    }
    elseif(
$type=="textarea")
    {
        
$form_code="<label><span>".$value1."</span><textarea class=\"message\" name=\"".$value2."\" id=\"feedback\" value=\"".$value3."\"></textarea></label>";
    }
    elseif(
$type=="submit")
    {
        
$form_code="<label><input type=\"submit\" class=\"button\" value=\"".$value1."\" /></lable>";
    }

    echo 
$form_code;

backend.php
PHP-Code:
function bck_login($value)
{
    global $lang;
    $err_arr=array();



    if(isset($value[0]) || isset($value[1]))
        $err_arr[0]=1;
    else
        $err_arr[0]=0;
    if(isset($value[0]) && isset($value[1]) && $value[0]!="" && $value[1]!="")
        $err_arr[1]=1;
    else
        $err_arr[1]=0;
    if(check_email($value[0]) == true)
        $err_arr[2]=1;
    else
        $err_arr[2]=0;

    $value[1]=md5($value[1]);
    $request = mysql_query("SELECT email, password, status FROM user WHERE email='$value[0]' LIMIT 1"); 
    if($row = mysql_fetch_object($request))
        $err_arr[3]=1;
    else
        $err_arr[3]=0;

    if($row->password==$value[1])
        $err_arr[4]=1;
    else
        $err_arr[4]=0;
    if($row->status==1)
        $err_arr[5]=1;
    else
        $err_arr[5]=0;

    

    $err_total=$err_arr[1]+$err_arr[2]+$err_arr[3]+$err_arr[4]+$err_arr[5];

    if($err_total==5)
    {

        $_SESSION["status"]=TRUE;
        $_SESSION["username"]=$row->username;
        display_err(2, $lang["login_success"]);
        ?><meta http-equiv="refresh" content="1;url=./"><?php
    
}
    if(
$err_arr[1]==&& $err_arr[0]==1)
        
display_err(2$lang["login_err_fillout_all"]);
    if(
$err_arr[2]==&& $err_arr[1]==1)
        
display_err(2$lang["login_err_unvalid_email"]);
    if(
$err_arr[3]==&& $err_arr[1]==&& $err_arr[2]==1)
        
display_err(2$lang["login_err_unavaillible_user"]);
    if(
$err_arr[4]==&& $err_arr[1]==&& $err_arr[3]==&& $err_arr[2]==&& $err_arr[5]==1)
        
display_err(2$lang["login_err_wrong_password"]);
    if(
$err_arr[5]==&& $err_arr[2]==&& $err_arr[3]==1)
        
display_err(2$lang["login_err_account_blocked"]);
}
Ich denke so wird es deutlich verständlicher.

Worum es mir nun geht, ist dass mir mal jemadn sagen kann, wie genau man ein Programm so strukturiert, dass es in Modulen arbeitet. Also, im Prinzip so wie ich es jetzt mache, nur halt besser
Wie würdet ihr die Aufgabe lösen und die einzelnen Seiten realisieren?

Bitte nicht am Code selber aufhängen, dass ist hier nicht die Frage. Es sei denn es sind diche klopper drin, dann natürlich bitte bescheit sagen.

SChonmal danke für Durchlesen.
HHP ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2011, 16:41  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

du benötigst sowas wie ein Autoloader der die Module dann lädt

sowas in der art:
user ruft folgenden link auf: index.php?module=profile&user_id=1337

PHP-Code:
if(isset($_GET['module'])){
load_module($_GET['module']);
}

function 
load_module($name){
include 
'module/'.$name.'.php';

ist jetzt schnell hingetippt aber so in etwa..
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:43  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Schau dir mal die Dokumentation einiger Frameworks an (z.B. Symfony 2). Was du da machst dürfte bei großen Projekten zu einem Wartungsalptraum führen.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:44  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
Schau dir mal die Dokumentation einiger Frameworks an (z.B. Symfony 2). Was du da machst dürfte bei großen Projekten zu einem Wartungsalptraum führen.
ich glaube das kannst du vergessen die verwenden klassen das wäre zu komplex:P

EDIT: auf jedenfall, verwenden andere Frameworks sowas wie "Ordnerstruktur" und "Namenskonvention" sprich, du prüfst nicht in deinem "handler" über if und $param welche seite aufgerufen wurde, sondern includest direct den $param wenn die datei vorhanden ist

PHP-Code:
if(is_file('module/'.$param.'.inc.php'){
include ...

__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen

Geändert von BlackScorp (15.12.2011 um 16:47 Uhr).
BlackScorp ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:45  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Da steht bei PHP-Kenntnisse "fortgeschritten". Also gibt's auch ne Antwort für Fortgeschrittene
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:45  
HHP
Neuer Benutzer
 
Registriert seit: 14.12.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
HHP befindet sich auf einem aufstrebenden Ast
Standard

Also ist es viel efizienter bck_login() und frt_login() zusammen in ein login.php zu schreiben und dieses dann zu includieren?! Ist ja im prinzip das, was ich für den multilanguagesupport verwende.
HHP ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:48  
HHP
Neuer Benutzer
 
Registriert seit: 14.12.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
HHP befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
Da steht bei PHP-Kenntnisse "fortgeschritten". Also gibt's auch ne Antwort für Fortgeschrittene
Danke schonmal für die Antworten!

Also OOP sollte schon drin sein. Mein Problem ist einfach, dass ich bisher immer an großen projekten scheiter, weil ich mich auf keine konzeptionierung festlegen kann/will.
Deshalb auch die functionslösung. Ist einfach im Moment eher das was ich verwende.
HHP ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:49  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
Da steht bei PHP-Kenntnisse "fortgeschritten". Also gibt's auch ne Antwort für Fortgeschrittene
hm.. Fortgeschritten und ein if elseif elseif elseif statt switch case ?...
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:53  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

In manchen Sprachen (z.B. Delphi) funktioniert ein switch-Statement nur bei Ordinaltypen (int, char). Insofern würde ich auch ein if elseif statt einem switch verwenden, wenn gegen Strings geprüft wird

@HHP
Wie gesagt ich würde mir mal die Frameworks anschauen. Gerade in der Symfony Doku wird auch einiges an Hintergrundwissen vermittelt. Und der Rest ist ausprobieren Je stärker du die einzelnen Programmteile entkoppelst umso leichter kannst du Elemente wiederverwenden.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 15.12.2011, 16:59  
HHP
Neuer Benutzer
 
Registriert seit: 14.12.2011
Beiträge: 10
PHP-Kenntnisse:
Fortgeschritten
HHP befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
Wie gesagt ich würde mir mal die Frameworks anschauen. Gerade in der Symfony Doku wird auch einiges an Hintergrundwissen vermittelt. Und der Rest ist ausprobieren Je stärker du die einzelnen Programmteile entkoppelst umso leichter kannst du Elemente wiederverwenden.
Das werde ich auf jeden Fall machen.
Denn genau das ist es was ich ja möchte, ein sauberes Programm, welches hinterhe nurnoch aus zusammengesetzten Modulen besteht.
HHP ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML Struktur erstellen aber nicht in Datei speichern patrick89 PHP-Fortgeschrittene 2 15.12.2011 11:40
Komplexe Emails decoden andi357 PHP-Fortgeschrittene 7 08.07.2011 21:36
Struktur für Benutzeraktivitäten Jan M. Software-Design 7 15.06.2011 23:30
SoapClient -> Ändern der Request Struktur, sinnvoll, möglich? Nico PHP-Fortgeschrittene 6 13.05.2011 12:17
Entwickler für komplexe Webanwendung mit PHP nyafh_suche Gewerblich 1 21.04.2011 15:15
Komplexe Formulare TSchustek PHP Einsteiger 3 10.03.2011 22:38
Problem: Struktur der Homepage Michelangelo PHP Einsteiger 6 02.01.2011 12:19
xml schreiben ... keine struktur knall PHP Tipps 2010 1 02.10.2010 15:40
Verschachtelte HTML Struktur --Skynet-- PHP Tipps 2010 9 07.09.2010 14:39
xslt struktur.. so nur mit php-unterstützung möglich? Crypi PHP Tipps 2008 8 17.03.2008 17:58
Struktur im Newssystem tinchen PHP Tipps 2007 4 10.07.2007 21:20
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
DB Struktur? nsane Datenbanken 2 11.10.2005 10:50
Komplexe Struktur ausgeben PHP-Fortgeschrittene 3 25.05.2005 08:48
wer weiß wie man so ein struktur schreibt?? HTML, Usability und Barrierefreiheit 1 30.08.2004 10:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php programm struktur erstellen, struktur komplexes javascript programm ajax, komplexe php projekte struktur, komplexe programme mit php?, struktur von php programmen, php komplexer anwendungen, programm php struktur, php komplexe struktur, komplexe php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum