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 Thema bewerten
Alt 18.08.2011, 18:58  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Mein Punkt ist, dass es irgendwo zusätzlich eine einfache Möglichkeit geben muss, einen einfachen Link zu erstellen (z.B. absolut vom Projektpfad aus).
hört sich für mich an wie "kurz mal was anflanschen".

Dieses "kurz mal" ohne den normalen Weg zu nehmen hab ich schon oft in OS-Projekten gesehn
oder auch die Helper im ZF werden gerne misbraucht um kurz mal direkt von der View aus Daten aus
dem Model zu holen.
Also quasi unter Umgehung der Konventionen schnelll mal was ranzubasteln.

Bei solchen Sachen muß man auch mal an die armen Programmierer denken die den Code
später in die Hände kriegen.

Mir ist es lieber wenn die Programmteile sauber integriert sind,
dann blick ich schneller durch.

Klar ist das zu Beginn etwas aufwändiger, aber später eben wartbarer.

Falls Du das anders gemeint haben solltest, dann sorry.

"zusätzlich einfache Möglichkeit" hört sich für mich eben so an.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.08.2011, 15:51  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Es spricht doch nichts dagegen, wenn die komplizierte, umfangreiche, flexible Klasse mit einer einfach zu benutztenen Koexistiert. Wenn du dir ne Kaffeemaschine kaufst, kannst du entweder einfach ne Tasse drunterstellen und auffen Knopp drücken, oder du stellst verschiedene Parameter ein, wie z.B. die Milchmenge. Das macht dich flexibler, kostet aber mehr Zeit, dafür gibt es denn "Los, einfach Kaffee-Knopp".

Die Fassade-Klasse erzeugt einfach einen Link mit der komplexen Klasse und benutzt für die Parameter einfach Basiseinstellungen:
PHP-Code:
<?php
/* Konktrete Generatorklasse */
class AnchorGenerator extends AbstractAnchorGenerator implements Generator  {

    public function 
__construct() {}

    
/*
     * Wahnsinnig viele, komplizierte
     * Methoden für größtmögliche Flexibilität
     */
    
public function generate() {}
    public function 
isSsl() {}
    public function 
isRelative() {}
    public function 
setScheme() {}
    public function 
getScheme() {}
    public function 
setConfig() {}
    public function 
getConfig() {}
    public function 
setController() {}
    public function 
getController() {}
    public function 
setAction() {}
    public function 
getAction() {}
    public function 
setParams() {}
    public function 
getParams() {}
    public function 
setParamType() {}
    public function 
getParamType() {}
    

    
}

/* Facade */
class Anchor {

    public static function 
generate($linkTo) {
        
$anchor = new AnchorGenerator();
        
$parts explode('/'$linkTo);

        switch(
count($parts)) {
            default:
            case 
3:
                
$anchor->setParams($parts[2]);
            case 
2:
                
$anchor->setAction($parts[1]);
            case 
1:
                
$anchor->setController($parts[0]);
                
        }
        
        
$anchor->isRelative(false);
        
$anchor->isSsl(false);
        
$anchor->setParamType(new DefaultParamType());
        return 
$anchor->generate();

    }

}

?>
<a href="<?php echo Anchor::generate('a/b/c'); ?>">Foobar</a>
__________________
dsentker ist offline   Mit Zitat antworten
Alt 20.08.2011, 17:49  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

@dsentker: Komplexe Logik muss doch nicht kompliziert zu nutzen sein. Sofern das so ist, hast du die API vielleicht nicht ausreichend einfach gestaltet. Mit dem APF-LinkGenerator reicht beispielsweise ein

PHP-Code:
LinkGenerator::generateUrl(Url::fromCurrent()->mergeQuery(array('page' => 5,'print' => 'true'))); 
um in einer bestehenden URL zwei Parameter zu manipulieren. Die Logik dahinter ist hinsichtlich der LinkScheme-Implementierungen sicher etwas komplexer, jedoch gestaltet sich die API einfach zu bedienen.

Bietest du mehrere Stellen oder gar irgendwas mit *Helper* (was auch eine Helper-Methode sein kann), verführst du den Benutzer zum Frickeln!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 21.08.2011, 10:46  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Was ist an Helper-Klassen für Views so verwerflich?
Trainmaster ist offline   Mit Zitat antworten
Alt 21.08.2011, 21:59  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Was ist an Helper-Klassen für Views so verwerflich?
beim ZF werden oft View-Helper benutzt um direkt aus dem Model Daten zu beschaffen:
http://framework.zend.com/manual/en/...ance.view.html
Zitat:
If you have most business logic nested in your models and are simply querying the model and passing the results to a view script, it will typically be faster and cleaner to simply write a view helper that pulls the model, queries it, and does something with that information.
Ist das noch MVC ?

Zitat:
The last one is a really odd advice - it's a bad practice to make view aware of model.
Zitat:
What is the sense of action() view helper then? It's against any principles to create helper which generates lot of html. This hurts on the re-use of code.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Alt 23.08.2011, 23:00  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Danke, Koala!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 24.08.2011, 09:59  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von Koala Beitrag anzeigen
um direkt aus dem Model Daten zu beschaffen
Das möcht ich gar nicht erreichen. Unter einem View-Helper verstehe ich eine Klasse/Methode, die mir nützliche Funktionalitäten im View bereitstellt. Letztenendes möchte damit ich die Daten, die dem View übergeben worden sind, für die finale Ausgabe aufbereiten. Darunter fallen bspw. Datums- und Währungsformatierung oder eben URL-Generierung. Das sind meiner Meinung nach alles Aufgaben, die in der Präsentationsschicht anzusiedeln sind.

Geändert von Trainmaster (24.08.2011 um 10:17 Uhr).
Trainmaster ist offline   Mit Zitat antworten
Alt 24.08.2011, 10:13  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich finde auch, dass, wenn der View-Helper seine Abhängigkeiten von außen bekommt und selbst nicht auf irgendwelche Models oder Logik zurück greift, dann ist das in Ordnung.
xm22 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
[php] File Upload script - hochgeladener Link verschlüsseln und automatisch löschen staybb PHP Einsteiger 7 18.03.2011 13:01
Eine Seite mit allen GET-Variablen in Link übernehmen snemies PHP Tipps 2009 5 30.10.2009 15:40
link -> get variabeln auslesen clemo PHP Tipps 2009 10 25.09.2009 02:16
[Erledigt] gesamte Spalte in Array abspeichern Kotbatzen PHP Tipps 2009 23 05.09.2009 00:01
Link mit ID in Echo einbinden Mitch26 PHP Tipps 2009 4 06.08.2009 17:02
[Erledigt] mail() mit &lt;a herf... Link in Html Mail geht nicht!? BettinaSyn PHP Tipps 2009 11 16.05.2009 22:28
[Erledigt] phpmailer link im body bereich definieren raphaelf PHP Tipps 2009 5 14.05.2009 10:52
erst beim zweiten Login funktioniert Link scarry_77 PHP Tipps 2009 5 14.04.2009 00:35
Klick auf Seitenobjekt (Link mit onClick Ereigniss) mit JScript simulieren Stephan_87 JavaScript, Ajax und mehr 1 22.12.2008 21:50
Smiley Generator Jay0815 PHP Tipps 2008 3 28.12.2007 16:22
Daten aus MySQL-abfrage zum Link mit id zusammensetzen maccoder Datenbanken 2 13.09.2005 16:49
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
absoluter link PHP Tipps 2004 10 01.07.2004 23:00
PHP Link ??? PHP Tipps 2004 4 25.06.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
kurz link generator, kurzlink-generator, anker link generator, php script fileupload with link generation, kurzlink generator, link helper generator, kurz link generator php

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