php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #31 (permalink)  
Alt 18-07-2011, 10:55
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
Ohmann ... als ich "public static sollte vermieden werden" gelesen hab hörte ich auch auf, den Thread zu verfolgen

Ohne global erreichbare, ungeschützte Objekte sind größere Projekte meist garnicht möglich - ein einzige Zugriffspunkt muss immer uneingeschränkt erreichbar sein wenn die Software lesbar sein soll und/oder von mehr Leuten als nur dem kleinen Hans in seinem Kinderzimmer gebaut wird

Das ist auch durchaus vertretbar - sofern diese variable oder dieses Objekt einigermassen isoliert ist und wirklich nur die wichtigsten Infos / Zugriffspunkte bietet. Das ist nunmal Fakt - da können sich einige Spezis im Internet auch noch so sehr gegen wehren.

Und nun viel Spaß beim Sabbern ob der Ironie meines Nicknames.
Schon mal was von Dependency Injection gehört? Welche Objekte sollten denn unbedingt global erreichbar sein? Kannst du ein Beispiel nennen?

Ich kenne genug größere Projekte und statische Klassen sind zu 99% nur Bequemlichkeits-Dirty-Hacks, die eigentlich vermeidbar wären.
Mit Zitat antworten
  #32 (permalink)  
Alt 18-07-2011, 11:02
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Zitat:
Zitat von fireweasel
So wie ich das sehe, verhält sich eine Klasse mit statischen Methoden und statischen Eigenschaften auch wie ein Singleton, ist also nur ein anderer Name für (fast) das gleiche Konzept.
Ist alles „global state“. Verdeckt Abhängigkeiten, „versaut“ Unit-Testing. (potentiell)

- http://misko.hevery.com/code-reviewers-guide/

Geändert von mermshaus (18-07-2011 um 11:06 Uhr)
Mit Zitat antworten
  #33 (permalink)  
Alt 18-07-2011, 11:12
derschbedsi
 Registrierter Benutzer
Links : Onlinestatus : derschbedsi ist offline
Registriert seit: Jul 2011
Beiträge: 8
derschbedsi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Das stimmt so nicht. Für Schnellschussprojekte oder Machbarkeitsstudien muss man static nicht dogmatisch vermeiden
Welchen Teil des Wortes "große" habe ich versehentlich in einer unbekannten Sprache verfasst?

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
, aber wenn es um Wiederverwendbarkeit und Wartbarkeit geht, ist es gerade bei großen Projekten mehr als sinnvoll, dass man bessere Ansätze verwendet.
Jo ... netter Gedanke - funktioniert in der Realität eben nicht, ganz besonders dann wenn Hunderte von Entwicklern an der selben Software arbeiten.

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Dass große Projekte ohne static nicht auskommen würden, ist aber absolut unzutreffend. Es gibt so viele gute Entwurfsmuster, die einen würdigen Ersatz darstellen.
In der Schule und im Studium lernt man das so - danach holt die Realität aber schnell auf ;-)

Man kann froh sein, in großen Projekten überhaupt noch lesbaren Code anzutreffen - viele "Entwickler" stammen eben immernoch aus Urzeiten und setzen auf streng prozeduralen Code, geben nichts auf Lesbarkeit, flechten überall Magic Numbers ein oder schreiben sogar vollkommen absichtlich auf eine unwartbare, unlesbare Art u. Weise --> Willkommen auf dem Planeten Erde.
Mit Zitat antworten
  #34 (permalink)  
Alt 18-07-2011, 11:15
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
In der Schule und im Studium lernt man das so - danach holt die Realität aber schnell auf ;-)
Also ich kenn den umgekehrten Weg. In der Schule haben wir quasi gar kein richtiges Programmieren gelernt. Studium hab ich keins gemacht. Aber in der Realtität merkt man sehr schnell, welche Nachteile der ganze statische Mist bringt, je mehr man damit konfrontiert wird.

Zitat:
Zitat von derschbedsi Beitrag anzeigen
Man kann froh sein, in großen Projekten überhaupt noch lesbaren Code anzutreffen - viele "Entwickler" stammen eben immernoch aus Urzeiten und setzen auf streng prozeduralen Code, geben nichts auf Lesbarkeit, flechten überall Magic Numbers ein oder schreiben sogar vollkommen absichtlich auf eine unwartbare, unlesbare Art u. Weise --> Willkommen auf dem Planeten Erde.
Ein Projekt hat nun mal Coding Standards, an die sich jeder halten muss. Und diejenigen, die sich nicht daran halten, die werden halt früher oder später nicht mehr an diesem Projekt mitarbeiten. Das ist die Realität.

Geändert von h3ll (18-07-2011 um 11:17 Uhr)
Mit Zitat antworten
  #35 (permalink)  
Alt 18-07-2011, 11:19
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
viele "Entwickler" stammen eben immernoch aus Urzeiten und setzen auf streng prozeduralen Code, geben nichts auf Lesbarkeit, flechten überall Magic Numbers ein oder schreiben sogar vollkommen absichtlich auf eine unwartbare, unlesbare Art u. Weise
Mag sein, aber deswegen ist es noch lange nicht gut so! Ganz im Gegenteil: Gerade weil es so ist, kann man gar nicht oft genug "sauberen" Stil propagieren.
Mit Zitat antworten
  #36 (permalink)  
Alt 18-07-2011, 11:58
derschbedsi
 Registrierter Benutzer
Links : Onlinestatus : derschbedsi ist offline
Registriert seit: Jul 2011
Beiträge: 8
derschbedsi befindet sich auf einem aufstrebenden Ast
Standard

... und trotzdem haben öffentliche Variablen / Objekte ihre Daseinsberechtigung - man sollte sie eben sparsam und sinnvoll einsetzen.

Beispiel :

PHP-Code:

class myClass
{

    public static 
$smarty

    function 
__construct()
    {
        require_once(
"libs/Smarty.class.php");
        
$this->smarty = new Smarty();
    } 


Tatsächlich HILFT in diesem Falle die Variable doch sehr - HTML-Code wird komplett weggekapselt und somit bleibt der PHP-Code lesbar. Das nun über getter und setter zu realisieren ... naja, ich weiss nicht - ein bischen Overkill für eine einzige oder einige wenige Variablen
Mit Zitat antworten
  #37 (permalink)  
Alt 18-07-2011, 12:04
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Dependency Injection wäre auch hier der sinnvollere Weg. Deine Klasse musst du ja schon alleine umschreiben, wenn sich der Pfad ändert. Wenn du aus dem Code API-Docs generierst, sieht kein Entwickler mehr, dass du eine fest verdrahtete Abhängigkeit zu Smarty hast, die auch noch auf einen bestimmten Pfad festgenagelt ist. Das nennst du Lesbarkeit?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #38 (permalink)  
Alt 18-07-2011, 12:15
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
... und trotzdem haben öffentliche Variablen / Objekte ihre Daseinsberechtigung - man sollte sie eben sparsam und sinnvoll einsetzen.

Beispiel :

PHP-Code:

class myClass
{

    public static 
$smarty

    function 
__construct()
    {
        require_once(
"libs/Smarty.class.php");
        
$this->smarty = new Smarty();
    } 


Tatsächlich HILFT in diesem Falle die Variable doch sehr - HTML-Code wird komplett weggekapselt und somit bleibt der PHP-Code lesbar. Das nun über getter und setter zu realisieren ... naja, ich weiss nicht - ein bischen Overkill für eine einzige oder einige wenige Variablen
Smarty ist generell Müll. Aber mal davon abgesehen, wozu eine statische public Variable? Ist doch hier vollkommen überflüssig.
Mit Zitat antworten
  #39 (permalink)  
Alt 18-07-2011, 12:29
derschbedsi
 Registrierter Benutzer
Links : Onlinestatus : derschbedsi ist offline
Registriert seit: Jul 2011
Beiträge: 8
derschbedsi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Smarty ist generell Müll.
Das Prinzip der Trennung von Programmlogik und -Darstellung "Müll" zu nennen spricht Bände und disqualifiziert dich vollautomatisch ;-)
Unabhängig davon wie toll / nicht toll Smarty implementiert ist - solche Libs sind mehr als sinnvoll und mitunter auch ein Merkmal von lesbarem Code.


Zitat:
Dependency Injection
Fabrikklassen sind in der Tat sehr empfehlenswert ... aber erst in mittelgroßen bis großen Projekten. Bei 500 Zeilen ... naja ... "Overkill" eben.

Zitat:
Das nennst du Lesbarkeit?
Jop, allerdings. Das ist schonmal ein Riesenschritt im Vergleich zu prozeduralem Code - auch OOP unterliegt einer Kosten/Nutzen - Einschätzung.
Mit Zitat antworten
  #40 (permalink)  
Alt 18-07-2011, 12:33
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
Das Prinzip der Trennung von Programmlogik und -Darstellung "Müll" zu nennen spricht Bände und disqualifiziert dich vollautomatisch ;-)
Bitte genau lesen. Ich hab nur gesagt, dass Smarty Müll ist. Smarty steht nicht für das Prinzip der Trennung von Programmlogik und Darstellungslogik.

Wenn du nur mit Smarty Programm- von Darstellungslogik trennen kannst, spricht das Bänder und disqualifiziert dich automatisch.

Zitat:
Zitat von derschbedsi Beitrag anzeigen
Unabhängig davon wie toll / nicht toll Smarty implementiert ist - solche Libs sind mehr als sinnvoll und mitunter auch ein Merkmal von lesbarem Code.
Quatsch. Man kann auch ohne Smarty lesbaren Code schreiben.
Mit Zitat antworten
  #41 (permalink)  
Alt 18-07-2011, 12:37
derschbedsi
 Registrierter Benutzer
Links : Onlinestatus : derschbedsi ist offline
Registriert seit: Jul 2011
Beiträge: 8
derschbedsi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Smarty steht nicht für das Prinzip der Trennung von Programmlogik und Darstellungslogik.
[ ] Smarty verstanden
[x] einfach mal was gesagt

Zitat:
Zitat von h3ll Beitrag anzeigen
Wenn du nur mit Smarty Programm- von Darstellungslogik trennen kannst, spricht das Bänder und disqualifiziert dich automatisch.
[x] rumgetrollt
[x] nun auf der Ignorierliste
Mit Zitat antworten
  #42 (permalink)  
Alt 18-07-2011, 12:40
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Offtopic:

Im Ernst, bisschen mehr inhaltliches Niveau wäre der Hit, sonst springt der Thread so langsam endgültig von der Klippe.
Mit Zitat antworten
  #43 (permalink)  
Alt 18-07-2011, 12:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Na wenn das dein Niveau ist, dann kann man die Diskussion mit dir gleich beenden...

Wenn du Smarty für das Allheilmittel hältst, wird eigentlich sehr schnell klar, dass du von Programmieren keine Ahnung hast.

Geändert von h3ll (18-07-2011 um 13:07 Uhr)
Mit Zitat antworten
  #44 (permalink)  
Alt 18-07-2011, 13:02
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von derschbedsi Beitrag anzeigen
Fabrikklassen sind in der Tat sehr empfehlenswert ... aber erst in mittelgroßen bis großen Projekten. Bei 500 Zeilen ... naja ... "Overkill" eben.
Dependency Injection hat erstmal genau gar nichts mit Fabrikklassen zu tun und lohnt sich sehr wohl auch in kleinen Projekten, die dadurch sogar in hohem Maße wiederverwendbar werden. Bitte informier dich über den Unterschied zwischen dem Factory-Pattern und Dependency Injection. Bisher vermittelst du den Eindruck, dass du da was falsch verstanden hast, was auch deine Affinität zu static erklären würde.

Übrigens trollt hier niemand außer dir. Du hast schon vom ersten Beitrag an deine Meinung dogmatisiert und alle die anders darüber denken mehr oder weniger subtil abgewertet.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #45 (permalink)  
Alt 18-07-2011, 13:08
derschbedsi
 Registrierter Benutzer
Links : Onlinestatus : derschbedsi ist offline
Registriert seit: Jul 2011
Beiträge: 8
derschbedsi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Dependency Injection hat erstmal genau gar nichts mit Fabrikklassen zu tun
Oh mann ...

Zitat:
Zitat von Wikipedia
Sie kann als Verallgemeinerung der Fabrikmethoden verstanden werden
Lass mich raten - nun kommt "Wikipedia hat nicht immer recht!!1eins"

Zitat:
Bitte informier dich über den Unterschied zwischen dem Factory-Pattern und Dependency Injection.
Dickes Eigentor.

Zitat:
Bisher vermittelst du den Eindruck, dass du da was falsch verstanden hast, was auch deine Affinität zu static erklären würde.
Jaja ... "Affinität" und so. Wird schon so sein. Ich hab alle meine Klassen, Methoden auf public ... bestimmt.

Zitat:
Übrigens trollt hier niemand außer dir.
Ja, Argumente sind ja bekanntlich "Getrolle". Aber ich merk schon dass hier religiöse Glaubensparadigmen vorherrschen - typisch Internetforum eben.

Zitat:
Du hast schon vom ersten Beitrag an deine Meinung dogmatisiert und alle die anders darüber denken mehr oder weniger subtil abgewertet.
"Ein Forentroll" === "alle"
"bekanntermassen unwahre Behauptungen als solche deklariert " === "mehr oder weniger subtil abgewertet"

Nun, normalerweise mag ich kindliche Symbolik nicht ... doch in diesem Fall passt es ausnahmsweise einmal :


Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
static überschreiben Sandmann1 PHP Developer Forum 2 01-07-2008 12:02
[Funktion] global / static nur unter Bedingungen? Maranello-550 PHP Developer Forum 4 09-06-2005 18:54
anstelle global $a,$b,$c,$d; -> global CONST; joschua PHP Developer Forum 11 24-01-2003 21:26
code schnipsel für parsing dynamic php in static html faustus PHP Developer Forum 2 05-12-2002 17:18

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:11 Uhr.