php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 27.06.2011, 09:46  
Neuer Benutzer
 
Registriert seit: 27.06.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
TheFox befindet sich auf einem aufstrebenden Ast
Standard Eine professionelle Struktur in PHP

Hallo Community!

Ich bräuchte ein paar Ratschläge von ein paar Erfahrenen PHP-Entwicklern für ein PHP-Konzept.

Generell kenne ich mich mit den Grundfunktionen von PHP recht gut aus, bis auf objektorientiertes Entwickeln mit PHP (Habe jedenfalls gehört, dass das gehen soll) habe ich schon einige kleinere Projekte damit realisiert.

Nun zu meinem "Problem":
Mein Chef kam nun auf mich zu und bat mich darum, ein Web-Frontend für eine SQL-Datenbank in PHP zu schreiben. (vergleichbar mit PHPmyAdmin, nur nicht so fachlich und nicht so umfangreich). Also im Grunde ersteinmal für jede Tabelle die Grundfunktionalitäten "hinzufügen", "ändern", "löschen". Eigentlich erstmal nichts Kompliziertes.

Nun, warum ist das für mich ein Problem?

Im Grunde reicht meine Erfahrung in PHP aus um dieses Projekt schnell in die Tat um zu setzen. Doch für eine bequeme Weiterentwicklung (und das wird definitiv irgendwann folgen, so gut kenne ich meinen Chef) möchte ich dieses Projekt direkt so professionell wie möglich angehen! Also eine saubere Dokumentation des Ganzen erstellen (vermutlich bin ich auf lange Sicht nicht allein mit diesem Projekt bschäftigt), Frontend vom Backend trennen uvm. was ich jetzt evtl. noch vergessen habe.

Da ich das ganze in PHP noch nie so professionell gemacht habe, wäre ich deshalb für jeden Vorschlag von erfahrenen PHP-Entwicklern dankbar.

Könnt ihr mir z.B. irgendwelche Tools oder Editoren empfehlen? (Ein Bekannter nannte mir z.B. "Smarty"). Wie stelle ich am sinnvollsten ein Konzept für dieses Projekt auf die Beine? Wie kann ich den Quellcode am sinnvollsten strukturieren? Ist Objektorientierung in PHP hier sinnvoll?

Es wäre super wenn ihr mir ein paar gute Ratschläge geben könntet. Vielen Dank schonmal im Vorraus

Geändert von TheFox (27.06.2011 um 09:53 Uhr).
TheFox ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.06.2011, 09:52  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi.

Das dürfte einen Großteil deiner Fragen beantworten:

http://tutorials.lemme.at/mvc-mit-php/

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 27.06.2011, 09:54  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

hier mal ein zwei Links:
http://de.wikipedia.org/wiki/Model_View_Controller
http://de.wikipedia.org/wiki/EVA-Prinzip

Smarty halte ich persönlich für überflüßig, da PHP selbst als Templatesprache konzipiert wurde, da noch einmal eine Engine drüberstülpen ist zuviel des guten. Ein View (siehe V in MVC) in reinem PHP reicht aus.

Aber die Trennung von Eingabe, Verarbeitung und Ausgabe (EVA) ist sinnvoll. Am Besten gleich mit MVC und einem gescheiten Framework.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 27.06.2011, 09:54  
Benutzer
 
Registriert seit: 25.03.2011
Beiträge: 52
PHP-Kenntnisse:
Fortgeschritten
Maxefix befindet sich auf einem aufstrebenden Ast
Standard

Dann lies dich mal in die objektorientierte Programmierung ein und mach dich mit dem Model-View-Controller-Prinzip vertraut.

Smarty ist eine Template-Engine, die aufjedenfall sehr leistungsfähig und verbreitet ist. Wirklich falsch machen tust damit nichts, es ist nur fraglich ob du sie brauchst, oder ob nicht auch reines PHP tut. Letzteres ist nämlich deutlich schneller und hat keine weiteren Abhängigkeiten. Als Alternative sei noch Twig genannt. Ich hab damit zwar (leider) noch nicht gearbeitet, aber sie macht einen guten Eindruck.

Aber ich würds möglichst einfach halten, dann lernst auch viel dabei. Also einfach eine Controller-Klasse, ein Model und ein View mit ganz normalen PHP-Templates. Für den Datenbankzugriff kannst du dann ja PDO verwenden.

Gruß,
Max

EDIT: Zu langsam.
Maxefix ist offline   Mit Zitat antworten
Alt 27.06.2011, 10:33  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 724
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TheFox Beitrag anzeigen
Also im Grunde ersteinmal für jede Tabelle die Grundfunktionalitäten "hinzufügen", "ändern", "löschen". Eigentlich erstmal nichts Kompliziertes.
Das nennt sich CRUD / Scaffolding.

Symfony z.B. (oder auch andere Frameworks) bieten die Funktionalität bereits an, aus einem Datenbankschema die PHP-Klassen zu generieren.

http://www.symfony-project.org/book/1_0/14-Generators
hts ist offline   Mit Zitat antworten
Alt 27.06.2011, 13:24  
Neuer Benutzer
 
Registriert seit: 27.06.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
TheFox befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für Eure zahlreichen Antworten! Ich schau mir gerade genauer an wie man nach dem MVC-Prinzip mit PHP arbeitet.

Könntet Ihr mir vllt noch einen guten Editor unter Ubuntu empfehlen? Ich hätte da gern etwas schlichtes (ähnlich wie Notepad++, nur läuft der nicht so gut mit Wine auf Ubuntu). Hab sonst nur "Bluehfish" getestet, der macht zwar einen anständigen Eindruck, ist aber total Buggy beim Highlightning.
TheFox ist offline   Mit Zitat antworten
Alt 27.06.2011, 13:44  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Eclipse ist zwar nicht schlicht, aber das Beste was so rumläuft.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 27.06.2011, 14:14  
Benutzer
 
Registriert seit: 24.12.2010
Beiträge: 68
PHP-Kenntnisse:
Anfänger
kaptainIglo befindet sich auf einem aufstrebenden Ast
Standard

Da habe ich auch noch eine Frage zu dem Thema. So was ähnliches wollte ich auch Fragen.

Ich habe ein Formular für Aufträge. Nach dem Absenden des HTML-Formulars geht es los.
Das Formular muss validiert werden und dann in die Datenbank eingetragen werden. Anschließend wird noch eine E-Mail generiert.

Wie geht Ihr hier vor.
Ich erzeugt ein neues Objekt Auftrag. Und wie geht es weiter.
Schreibe ich für jeden Vorgang eine eigene Funktion sprich:
Code:
$auftrag = new Auftrag;
If($auftrag->validierAuftrag() {
   $auftrag->addDatabase();
   $auftrag->sendEmail();
}
oder macht man das in einem Zug:
Code:
$auftrag = new Auftrag();
$auftrag->addAuftrag();
Und in dem "addAuftrag" spule ich alles herunter und liefere dann entsprechend ein true oder false.
kaptainIglo ist offline   Mit Zitat antworten
Alt 27.06.2011, 14:38  
Benutzer
 
Registriert seit: 25.03.2011
Beiträge: 52
PHP-Kenntnisse:
Fortgeschritten
Maxefix befindet sich auf einem aufstrebenden Ast
Standard

Ich würde aufjedenfall für jede Aktion eine eigene Methode schreiben. Es kann ja sein, dass du mal nur einen Auftrag speichern willst, ohne das die E-Mail versendet wird. Aber es spricht ja nichts dagegen eine Wrapper-Methode zu erstellen, die wiederrum nur die einzelnen Methoden aufruft. Beispiel:

PHP-Code:
class Auftrag {
  function 
handle() {
    try {
      
$this->validate();
      
$this->saveToDb();
      
$this->sendEmail();
    }
    catch (
Exception $e) {
      die( 
$e->getMessage() );
    }
  }

  function 
validate() {
    
// Validieren
  
}

  function 
saveToDb() {
    
// In der DB speichern
  
}

  function 
sendEmail() {
    
// E-Mail verschicken
  
}

In dem Beispiel habe ich einen Try-Catch-Block verwendet, da das in so einem Fall einfach "schöner" ist. In deinen einzelnen Methoden wirfst du einfach eine Exception sobald ein Fehler auftritt. In der Methode "handle()" fängst du die dann auf und reagierst entsprechend. Dadurch entfallen die ganzen if-else-Konstrukte wie man sie von früher kennt.

Gruß,
Max
Maxefix ist offline   Mit Zitat antworten
Alt 27.06.2011, 14:42  
Benutzer
 
Registriert seit: 24.12.2010
Beiträge: 68
PHP-Kenntnisse:
Anfänger
kaptainIglo befindet sich auf einem aufstrebenden Ast
Standard

danke für die Info.
Das mit dem handler gefällt mir.
Wie bekomme ich dann mit bei welcher Aktion ein Fehler auftritt?
kaptainIglo 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
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
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
Exportieren von daten und struktur in php mewking Datenbanken 2 30.12.2009 10:31
Professionelle und schnelle Projektumsetzung kleiner bis sehr großer Projekte cakephp Beitragsarchiv 0 04.09.2009 00:52
Dipl.-Informatiker erstellt professionelle Webauftritte freese60 Beitragsarchiv 0 31.05.2009 15:33
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
professionelle Tipps Maxi Off-Topic Diskussionen 21 11.04.2007 11:57
DB Struktur? nsane Datenbanken 2 11.10.2005 10:50
wer weiß wie man so ein struktur schreibt?? HTML, Usability und Barrierefreiheit 1 30.08.2004 10:50
Professionelle Bilderverwaltung auf Apache oder Tomcat Webse Beitragsarchiv 2 23.08.2004 15:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php professionell, php strukturieren, php struktur, php projekt struktur, php projekte strukturieren, datenbankzugriff php smarty, php projekt aufbau, struktur php projekt, struktur von php, php klassen struktur, struktur php, professioneller php shop aufbau, php wie seite strukturieren, php richtig strukturieren, projektaufbau struktur, wie seiten mit php sinnvoll strukturieren, professionelle php struktur, sinnvolle php projekte, website php strukturieren, datenbankschema in php-klasse

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:36 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