Archiv verlassen und diese Seite im Standarddesign anzeigen : [gelöst] PHP Autoload + GLOBAL
ThaDafinser 02-11-2009, 11:36 Hallo,
mir ist letztens ein Problem untergekommen, das anscheinend je nach PHP Konfiguration kommt oder nicht:
Eine Datei/Klasse wird über __autoload geladen.
Die Datei hat eine Switchanweisung, das je nach Einstellung eine von 2 Klassen lädt (die beide natürlich gleich heißen).
Das Problem ist nun:
Bei der Switchanweisung ist eine Variable, die bei __autoload nicht global ist --> müsste generell einen Fehler auswerfen!
Bei einem Rechner tut es dies auch, nur bei dem anderen nicht.
Hat jemand eine Idee, was das für eine Einstellung ist?
error_reporting(E_ALL); <-- ist bei beidem so eingestellt.
Die Datei hat eine Switchanweisung, das je nach Einstellung eine von 2 Klassen lädt (die beide natürlich gleich heißen).
Wozu soll das denn gut sein?
Hört sich gar nicht sinnvoll an.
ThaDafinser 02-11-2009, 14:08 Hat zwar nicht's mit dem Fehler zu tun, macht aber durchaus Sinn ;-)
Wenn man eine Software mehrfach einsetzt und etwas ändert, das aber nicht jeder Kunde sofort haben soll/darf, dann kann man das so steuern.
Gibt aber auch noch andere Anwendungsfälle, gibt dafür glaube ich sogar einen Design Pattern?!
Hat zwar nicht's mit dem Fehler zu tun, macht aber durchaus Sinn ;-)
Wenn man eine Software mehrfach einsetzt und etwas ändert, das aber nicht jeder Kunde sofort haben soll/darf, dann kann man das so steuern.
Schon mal was von Branches gehört?
ThaDafinser 02-11-2009, 17:19 Ich erwarte eigentlich eine Antwort auf meine eigentliche Frage und nicht auf Fragen ob ich etwas kenne.
Aber für dich:
JA!
Und hast du schonmal was gehört, das man mehrere Kunden auf einer Software laufen lassen kann, d.h. auf einem Branch?
Stichwort: Mandanten?
Bei den Einstellungen hat sich seit 10(?) Jahren nix geändert.
error_reporting(-1);
ini_set('display_errors', TRUE);
echo $test; // wirft Meldung
AmicaNoctis 02-11-2009, 17:43 Hallo,
Bei der Switchanweisung ist eine Variable, die bei __autoload nicht global ist --> müsste generell einen Fehler auswerfen!
Bei einem Rechner tut es dies auch, nur bei dem anderen nicht.
mal abgesehen von Fehlermeldung oder nicht - wenn die Variable nicht als global deklariert ist, steht sie in der __autoload-Funktion in beiden Fällen nicht zur Verfügung, also dürfte es gar nicht funktionieren.
Warum deklarierst du sie nicht als global oder findest einen saubereren Weg, diese Entscheidung im Code zu treffen?
Kannst du den __autoload-Code mal posten, damit man eine konkretere Vorstellung bekommt?
Gruß,
Amica
ThaDafinser 02-11-2009, 17:59 function __autoload($class) {
global $config, $applMessage;
$pathClass = explode ( '_', $class );
if (sizeof ( $pathClass ) > 1) {
$pathClass = implode('/',$pathClass);
require_once($pathClass.'.php');
} else {
require_once (SYF_PATH_CLASS . '/' . $class . '.php');
}
// Check to see if the include declared the class
if (! class_exists ( $class, false )) {
$applMessage->err ( "Unable to load class: $class" );
trigger_error ( "Unable to load class: $class", E_USER_WARNING );
}
}
Ruft dies auf:
global $a;
if ((isset ( $config->newListObjekt ) && $config->newListObjekt == true) || $a->getUsername()=='blubb)
require_once ('Classe1.php');
else
require_once ('Classe2.php');
onemorenerd 02-11-2009, 18:02 Wie passen die beiden Schnipsel zusammen? Haben die überhaupt etwas miteinander zu tun?
$config wird in __autoload() gar nicht verwendet und wenn du schon mit trigger_error() arbeitest, dann brauchst du $applMessage auch nicht unbedingt bzw. kannst es als error_handler setzen.
Btw: Entweder newListObject oder neuesListenObjekt.
ThaDafinser 02-11-2009, 18:56 Ja die passen zusammen....nur den ganze Programmablauf posten, würde alles ein wenig sprengen.....
Irgendwo ruft man die Klasse auf --> __autoload und die geht zum nächsten Schnipsel.
$config wird beim zweiten Schnipsel gebraucht, müsste von dem her auch dort sein.
Deutsch/Englisch mischung sorry ;-)
Nun aber zurück zu meiner Frage:
Was ist die passende PHP Einstellung zu meinem Problem?
Ich hätte jetzt gern mal dazu eine Antwort nicht zu allem anderen ;-)
AmicaNoctis 02-11-2009, 19:15 Wie lautet denn die genaue Fehlermeldung? Da das fehlende global lediglich eine E_NOTICE verursachen dürfte, die in beiden Fällen kommen müsste, wenn - wie du sagst - das Error-Reporting bei beiden auf E_ALL steht, kann ich den Unterschied nicht nachvollziehen. Hast du nur in der php.ini nachgesehen oder auch mal mittels phpinfo? Vielleicht sind die php.ini-Einstellungen in beiden Fällen gleich, aber nicht die lokalen?
Wenn deine Frage bisher nicht beantwortete wurde, liegt das allein daran, dass dieses Verhalten sich mit den gegebenen Informationen nicht nachvollziehen lässt.
onemorenerd 02-11-2009, 19:50 Wenn dein zweiter Schnipsel $a importiert, kann er sich auch $config selbst besorgen.
Das gesamte Konzept ist wirklich sehr schräg. Wenn du nicht mit Branches arbeiten kannst, wie wäre es dann mit einer Factory?
ThaDafinser 03-11-2009, 09:09 :-/
ja das mit $a und $config ist klar!
$config wird beim zweiten Schnipsel gebraucht, müsste von dem her auch dort sein.
Wir arbeiten mit Branches...nur kann es sein, wie geschrieben das auf einer Software dann 2 Kunden mit 2 verschiedenen Anforderungen arbeiten!
@AmicaNotris:
Undefined use of Variable
AmicaNoctis 03-11-2009, 14:13 Wie lautet denn die genaue Fehlermeldung?
Undefined use of Variable
Sowas gibt es nicht. Ist es so schwer, mal eine Fehlermeldung komplett zu kopieren?
Trotzdem sind da definitiv die Error-Reporting-Einstellungen der beiden Server unterschiedlich. Der eine ignoriert E_NOTICE, der andere nicht.
Ich erwarte eigentlich eine Antwort auf meine eigentliche Frage
Dann solltest du aber auch mal die gestellten Fragen beantworten, sonst kann das nichts werden.
onemorenerd 03-11-2009, 14:22 Wir arbeiten mit Branches...nur kann es sein, wie geschrieben das auf einer Software dann 2 Kunden mit 2 verschiedenen Anforderungen arbeiten!
Genau das ist der Grund zum Branchen. Wenn ich eine Software habe und dann ein Kunde spezielle Anpassungen bekommen soll, mache ich einen Branch/Fork des ganzen Projekts. Du machst den Branch zur Laufzeit. Ich will mir gar nicht ausmalen wie sich dein Code entwickelt, wenn dein Kundenstamm wächst oder wie deine Unit Tests aussehen. Aber wenn du meinst das ist schon in Ordnung so, dann mach halt weiter wie gehabt.
1. die genannte Meldung gibts nicht.
2. Logger kann man auch über Setter-Injection verteilen
3. Ebenso irgendwelche "welche Klasse nehme ich denn jetzt" Entscheider
4. globale Variablen sind böse
5. __autoload ist unnötig einschränkend. SPL Autoload ist universeller
6. "freie" Konstanten erhöhen die Abhängigkeiten
Alles in allem:
Ich kann da wenig modernen Programmierstil ausmachen. Ehr ein starkes Beharrungsvermögen.
ThaDafinser 03-11-2009, 15:32 Genau das ist der Grund zum Branchen. Wenn ich eine Software habe und dann ein Kunde spezielle Anpassungen bekommen soll, mache ich einen Branch/Fork des ganzen Projekts. Du machst den Branch zur Laufzeit. Ich will mir gar nicht ausmalen wie sich dein Code entwickelt, wenn dein Kundenstamm wächst oder wie deine Unit Tests aussehen. Aber wenn du meinst das ist schon in Ordnung so, dann mach halt weiter wie gehabt.
Ich weiß ja was du meinst....aber anscheinend nicht was ich meine ;-)
2 Kunden --> arbeiten auf einer Datenbank --> Felder können sich ändern (Oberfläche + Datenbank) --> letzter Branch nicht mehr gültig ....
@combie:
2. Danke
3. wie bereits gesagt: macht bei uns derzeit Sinn, wird auch nur temporär verwendet
4. Ist richtig, diese globalen sind aus früheren Tagen noch übrig und kann man nicht von heute auf morgen entfernen (Da an diesem Projekt seit 4 Jahren gearbeitet wird, ist noch nicht alles auf dem neuesten Stand)
5. Danke, kannte ich leider noch nicht.
6. Da hast du recht.
Ich finde es aber erschreckend, wie ihr von 20 Zeilen Code heraus Urteilt die teilweise nur temporär sind oder in der Entwicklung und meint ihr könnt sagen ob mein Code schlecht oder gut ist....
Ich würde gerne mal gerne eure Projekte ganz sehen und dann ziehe ich auch irgendwo Codeschnipsel hervor die nicht Konventionen oder einem Stil entsprechen.....
Alles in allem:
Ich kann da wenig Zielorientierung bei euren Antworten finden. Eher findet man sehr viel Abwertungen und Überschätzungen in den Antworten...
onemorenerd 03-11-2009, 15:58 Zu deinem Problem gibt es ja nicht viel zu sagen. Die von dir zitierte Fehlermeldung gibt PHP nie aus. Ich nehme an du meinst undefined variable. Die Ursache dafür ist - trommelwirbel - eine nicht definierte Variable. Also entweder existiert die Variable überhaupt nicht oder zumindest nicht im aktuellen Scope. Beides lässt sich ganz einfach überprüfen. Problem gelöst. Nun können wir uns wieder den strukturellen Problemen zuwenden. :)
2 Kunden --> arbeiten auf einer Datenbank --> Felder können sich ändern (Oberfläche + Datenbank) --> letzter Branch nicht mehr gültig ....--> letzten Branch (oder Trunk) anpassen!
ThaDafinser 03-11-2009, 16:26 --> letzten Branch (oder Trunk) anpassen!
1. = Doppelte Arbeit = Doppelte Zeit = unwirtschaftlich(er) (je nach Fall, aber das ist ein anderes Thema)
2. Arbeiten beide Kunden auf der gleichen Url und daher auch auf den gleichen Sourcen...(die Kunden sind in der Datenbank hinterlegt....und ich bitte jetzt darauf keine Frage "Warum liegen die da" --> hat einfach einen Grund und möchte nicht noch mehr von meinem eigentlichen Problem abschweifen )
"Mein" Problem
Das ist mir klar, das die "Variable" nicht existiert!
Aber wie ich geschrieben habe (ganz am Anfang), scheint es je nach PHP Einstellung, das er die PHP Variable in diesem Raum kennt oder nicht --> Also einen Fehler auswirft oder nicht.
Eigentliche Frage dazu
Wenn jemand diese Einstellung kennt, oder eine Ahnung hat woran es liegen könnte, dann wäre ich sehr dankbar für eine Antwort.
D.h: Es scheint neben error_reporting() noch eine 2te Einstellung zu geben, die diese Fehlermeldung steuert.
Antworten die nichts zum eigentlich Problem beitragen sind damit eigentlich für alle Zeitverschwendung....
Man könnte sich auch mal anschauen, wie andere das Problem angegangen sind.
Z.B. Doctrine geht da einen eigenen Weg.
Doctrine ORM for PHP - Migrations (http://www.doctrine-project.org/documentation/manual/1_1/en/migrations)
Ob der schön ist, ist eine Sache, aber recht tragfähig ist er.
--------------
Eigentliche Frage dazu
Wenn jemand diese Einstellung kennt, oder eine Ahnung hat woran es liegen könnte, dann wäre ich sehr dankbar für eine Antwort.
D.h: Es scheint neben error_reporting() noch eine 2te Einstellung zu geben, die diese Fehlermeldung steuert.
Antworten die nichts zum eigentlich Problem beitragen sind damit eigentlich für alle Zeitverschwendung....
Wenn du die Antworten nicht ließt, das ist "Zeitverschwendung" !!!
'In Posting #6 habe ich dir die Zweite Einstellung genannt:
http://www.php-resource.de/forum/fragen-zu-installation-konfiguration-lamp-wamp-co/97954-php-autoload-global.html#post628270
Und die phpinfo() Ausgabe der beiden Systeme wirst du doch wohl eigenständig vergleichen können, oder?
Warum tust du das dann nicht?
Wir können das nicht.
onemorenerd 03-11-2009, 16:36 scheint es je nach PHP Einstellung, das er die PHP Variable in diesem Raum kennt oder nicht --> Also einen Fehler auswirft oder nicht
PHP kennt die Variable oder kennt sie nicht. Da gibt es keine Unterschiede zwischen verschiedenen Versionen/Installationen/Konfigurationen. Die Ausgabe von Fehlermeldungen ist aber konfigurationsabhängig.
D.h: Es scheint neben error_reporting() noch eine 2te Einstellung zu geben, die diese Fehlermeldung steuert.
display_errors? Aber du hast ja schon alle Einstellungen verglichen, das kanns also nicht sein. ;)
ThaDafinser 03-11-2009, 16:43 Dachte ich ja bisher auch....
Da die Variable aber bei einer Installation existiert und man den Wert auch ausgeben kann und auf der anderen nicht, also scheint es doch Unterschiede zu geben...
Villeicht kann sich noch der ein oder andere an so etwas erinnern:
$_GET['var']
$_GET[var] <- war so viel ich weiß in den Urzeiten auch möglich...zwar nicht ganz richtig, hat aber je nach PHP Einstellung funktioniert...
DVilleicht kann sich noch der ein oder andere an so etwas erinnern:
$_GET['var']
$_GET[var] <- war so viel ich weiß in den Urzeiten auch möglich...zwar nicht ganz richtig, hat aber je nach PHP Einstellung funktioniert...
Das geht auch heute noch. var ist hier eine Konstante. Wenn diese Konstante nicht existiert, behandelt PHP es als String und schmeißt nebenbei eine Fehlermeldung der Stufe Notice.
Da die Variable aber bei einer Installation existiert und man den Wert auch ausgeben kann und auf der anderen nicht, also scheint es doch Unterschiede zu geben...
Häää... in den Einstellungen? Welche das erstellen von globalen Variablen verhindert? Nein!
Bisher dachte ich, du hast ein Problem mit Meldungen.....
Hast du gar nicht!
Du hast ein grundsätzliches Verständnis Problem.
Testcode:
<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
function test()
{
global $testvar; // deklariert die Variable
echo $testvar; // wirft darum auch keine Meldung
}
echo $testvar; // wirft Meldung, da Variable nicht existiert
test(); // rufe Funktion mit Seiteneffekt
echo $testvar; // wirft keine Meldung,
// da die Variable in der Funktion deklariert wird
Also nochmal: Verzichte auf globale Variablen, um genau solchen unerwünschten Seiteneffekten aus dem Wege zu gehen.
fireweasel 03-11-2009, 20:42 "Mein" Problem
Das ist mir klar, das die "Variable" nicht existiert!
Aber wie ich geschrieben habe (ganz am Anfang), scheint es je nach PHP Einstellung, das er die PHP Variable in diesem Raum kennt oder nicht --> Also einen Fehler auswirft oder nicht.
Eigentliche Frage dazu
Wenn jemand diese Einstellung kennt, oder eine Ahnung hat woran es liegen könnte, dann wäre ich sehr dankbar für eine Antwort.
Wie wäre es, wenn du die beiden INI-Dateien selbst vergleichst und nach Unterschieden suchst? Schließlich bist du der einzige hier, der Zugriff darauf hat. Es gibt da so ein nettes Tool namens diff (http://de.wikipedia.org/wiki/Diff) ...
Einfach so ins Blaue hinein geraten, würde mir jetzt nur register_globals (http://www.php.net/manual/en/ini.core.php#ini.register-globals) einfallen. Diese Einstellung auf "on" erzeugt globale Variablen, wenn dem Script entsprechende Parameter übergeben wurden. Aber dass das noch jemand freiwillig angestellt hat, kann ich mir nicht vorstellen (http://php.net/manual/en/security.globals.php).
Einfach so ins Blaue hinein geraten, würde mir jetzt nur register_globals (http://www.php.net/manual/en/ini.core.php#ini.register-globals) einfallen. Diese Einstellung auf "on" erzeugt globale Variablen, wenn dem Script entsprechende Parameter übergeben wurden. Aber dass das noch jemand freiwillig angestellt hat, kann ich mir nicht vorstellen (http://php.net/manual/en/security.globals.php).
Dass jemand, der hier sein Vorgehen und seinen Code so vehement gegen kritische Argumente verteidigt, nicht mal über diese Problematik Bescheid weiss, kann ich mir fast noch weniger vorstellen ...
(Denn sonst hätte er einen darin begründeten Fehler eigentlich schon vor dem Fragen selber finden müssen.)
ThaDafinser 04-11-2009, 08:40 @combie:
1. Danke für deine Antworten, haben mir teilweise weitergeholfen (speziell Doctrine ORM ist sehr interessant)
Display Error ist schon lange bei beiden drinnen.
2. zu den Variablen: Das ist mir schon klar, mit Lokalen Variablen etc...,ich programmiere auch nicht erst seit gestern... (ansonsten wäre das ziemlich schlimm)
Wenn du meinen ersten Post gelesen hast:
Das Problem ist nun:
Bei der Switchanweisung ist eine Variable, die bei __autoload nicht global ist --> müsste generell einen Fehler auswerfen!
@fireweasel:
Die beiden INI hab ich zuvor verglichen bzw. die vermeindlich "falsche" ersetzt. Weshalb der Fehler noch dubioser wird...
Dass jemand, der hier sein Vorgehen und seinen Code so vehement gegen kritische Argumente verteidigt, nicht mal über diese Problematik Bescheid weiss, kann ich mir fast noch weniger vorstellen ...
(Denn sonst hätte er einen darin begründeten Fehler eigentlich schon vor dem Fragen selber finden müssen.)
Ist eine Möglichkeit.
Die andere wäre einfach, das man von Posts über Antworten auf Fragen die man gar nicht gestellt hat bekommt genervt wird und von der eigentlichen Frage abweicht.
Wenn du in die Werkstatt gehst und einem Mitarbeiter fragst: "Mein Auspuff ist kaputt, könnte man den reparieren?" und er nur sagt "Wir könnten dir einen Chip einbauen, dann läuft dann Auto schneller. Ahh und dein Autoradio ist ja auch von gestern, da hätten dir ein super neues Model und erst deine Klimaanlage.....".
Du eigentlich nur bezüglich deinem Auspuff gefragt hast und er gar nicht mehr darauf reagiert, würdest du dich auch nicht freuen ;-)
Naja, lassen wir jetzt mal das Thema und danke vorläuftig für die teilweise Konstruktive Hilfe zum eigentlichen Problem.
onemorenerd 04-11-2009, 09:01 Gebracht hats aber nichts oder wie ist da jetzt der Stand?
ThaDafinser 04-11-2009, 09:03 Kann ich dir erst morgen / übermorgen sagen, wenn der 2te PC wider in betrieb ist ....
Ist eine Möglichkeit.
Die andere wäre einfach, das man von Posts über Antworten auf Fragen die man gar nicht gestellt hat bekommt genervt wird und von der eigentlichen Frage abweicht.
Das würde bedeuten, dass "man" - du - an einer Diskussion, die das eigene Weltbild erweitern könnte, gar nicht interessiert ist, und das "man" - du - unbedingt auf seiner Denkweise beharren will, auch wenn sie aus Sicht erfahrener Leute Fehler aufweist.
Wenn du in die Werkstatt gehst und einem Mitarbeiter fragst: "Mein Auspuff ist kaputt, könnte man den reparieren?" und er nur sagt "Wir könnten dir einen Chip einbauen, dann läuft dann Auto schneller. Ahh und dein Autoradio ist ja auch von gestern, da hätten dir ein super neues Model und erst deine Klimaanlage.....".
Du eigentlich nur bezüglich deinem Auspuff gefragt hast und er gar nicht mehr darauf reagiert, würdest du dich auch nicht freuen
Und wenn du mit dem Auto durch die TÜV-Prüfung willst, und dann merkst, dass die Werkstatt zwar den kaputten Auspuff repariert hat - sich aber um alles andere vom nicht funktionierenden Blinker bis zu den schleifenden Bremsen nicht gekümmert hat ... dann bist du natürlich happy, weil sie genau das gemacht haben, wonach du gefragt hast, und kein bisschen mehr. Dass das ingesamt betrachtet ein reichlich unsinniges Vorgehen war, willst du unbedingt erst später merken ...
Wenn du in die Werkstatt gehst und einem Mitarbeiter fragst: "Mein Auspuff ist kaputt, könnte man den reparieren?" und er nur sagt "Wir könnten dir einen Chip einbauen, dann läuft dann Auto schneller. Ahh und dein Autoradio ist ja auch von gestern, da hätten dir ein super neues Model und erst deine Klimaanlage.....".
Eher so:
Du gehst in die Werkstatt, weil dein Auspuff kaputt ist. Die Mitarbeiter merken aber an, dass die Bremsen fast komplett abgefahren sind, die Winterreifen unter 4mm Profiltiefe haben, eine Zündkerze ausgefallen ist und die Autobatterie vermutlich bald den Geist aufgibt sowie die beiden vorderen Stoßdämpfer erneuert werden müssen. Aber du bestehst strikt darauf, dass nur der Auspuff repariert wird :)
onemorenerd 04-11-2009, 11:33 Um es auf den Punkt zu bringen:
Autoradio, Klimaanlage und Chiptuning sind Extras, die zum Autofahren nicht unbedingt nötig sind.
Blinker, Bremsen und Motor sind funktions- und sicherheitsrelevante Teile.
Vom Autovergleich aufs Thema zurück übertragen heißt das:
Das Laden von Kunden/Mandanten-spezifischen Funktionen ist nicht optional sondern essentieller Bestandteil deiner Applikation, unter Umständern sogar sicherheitsrelevant.
Also, ich weiß im Moment gar nicht, welches Problem hier überhaupt gefragt ist.
Ist es ein Problem mit einer fehlenden Variablen?
Oder mit einer fehlenden Meldung bei fehlender Variable?
Aus dem Code kann ich nichts dergleichen ableiten. Auch die bisherigen Beschreibungen sagen mir nicht was du überhaupt willst/erwartest, oder was auch immer.
Einmal sprichst du von fehlenden Variablen, dann von fehlenden Meldungen.
Was denn jetzt?
Also nochmal von vorne:
1. Merze die globalen Variablen aus
2. beschreibe dein Problem
2. zu den Variablen: Das ist mir schon klar, mit Lokalen Variablen etc...,ich programmiere auch nicht erst seit gestern... (ansonsten wäre das ziemlich schlimm)
Ich spreche von globalen Variablen und nicht von lokalen!
Wenn du meinen ersten Post gelesen hast:
Dein erstes Posting habe ich gelesen Grrr....
Zitat:Das Problem ist nun:
Bei der Switchanweisung ist eine Variable, die bei __autoload nicht global ist --> müsste generell einen Fehler auswerfen!
Beispiel?
Welche Variable meinst du?
Zeige es uns.
ThaDafinser 04-11-2009, 12:07 Und wenn du mit dem Auto durch die TÜV-Prüfung willst, und dann merkst, dass die Werkstatt zwar den kaputten Auspuff repariert hat - sich aber um alles andere vom nicht funktionierenden Blinker bis zu den schleifenden Bremsen nicht gekümmert hat ... dann bist du natürlich happy, weil sie genau das gemacht haben, wonach du gefragt hast, und kein bisschen mehr. Dass das ingesamt betrachtet ein reichlich unsinniges Vorgehen war, willst du unbedingt erst später merken ...
Autoradio, Klimaanlage und Chiptuning sind Extras, die zum Autofahren nicht unbedingt nötig sind.
Blinker, Bremsen und Motor sind funktions- und sicherheitsrelevante Teile.
Keine Globalen besseres Autoload, .... - sind aus dieser Sichtweise auch "extras", die gut sind, die die Arbeit erleichtern usw..., aber nicht für den "TÜV" benötigt werden.
@wahsaga:
Das würde bedeuten, dass "man" - du - an einer Diskussion, die das eigene Weltbild erweitern könnte, gar nicht interessiert ist, und das "man" - du - unbedingt auf seiner Denkweise beharren will, auch wenn sie aus Sicht erfahrener Leute Fehler aufweist.
Wer sagt den nun das? Nur wenn man einen Thread eröffnet mit einem Thema, sollte man auch bei diesem Thema bleiben. Für Grundsatz Diskussionen bezüglich Softwarearchitektur etc. habe ich immer ein Ohr offen, nur NICHT in einem Themenbezogenen Thread.
Habe in letzter Zeit auch das Buch "PHP Design Pattern" (<- Buchtipp ;-) )gelesen, wo viele gute Ansätze vertreten sind und ich viele übernommen habe (was deiner Aussage ja widersprechen würde...).
Beharren ist nicht immer eine gute Eigenschaft (kann aber unter Umständen auch positiv sein...), weshalb ich eigentlich auch nicht so rüberkommen will, wenn das passiert ist entschuldige ich mich dafür, aber:
"Wenn 2 Menschen immer die gleiche Meinung besitzen, ist der eine Überflüssig" :grin:
Ich glaube wir haben uns bei diesem Thema einfach an einem falschen Punkt erwischt lassen unsere Grundsatzdiskussionen mal :-)
@combie:
Ja wird in Zukunft versucht, kann aber nicht von heute auf morgen in einer größeren Software passieren.
Das Problem lassen wir jetzt aber, werde mich selbst umschauen...
Das Problem lassen wir jetzt aber, werde mich selbst umschauen...
Du bist nicht bereit dein Problem in einem lesbaren, verständlichen Text zu präsentieren?
AmicaNoctis 04-11-2009, 12:21 sollte man auch bei diesem Thema bleiben.
Wenn der Fragesteller aber nur noch auf die Themenfremden Posts eingeht und nicht mehr auf Fragen bezüglich des eigentlichen Themas antwortet, ist es durchaus nachvollziehbar, dass alle in diesem Thread das eigentliche Thema als erledigt ansehen. ;)
Falls es noch nicht erledigt ist, solltest du das jetzt kundtun, vorher aber noch die offenen Fragen dazu klären.
ThaDafinser 04-11-2009, 12:36 Ja ist klar, ich bin natürlich darauf eingestiegen.
Seht das Problem als erledigt an!
Nur wenn man einen Thread eröffnet mit einem Thema, sollte man auch bei diesem Thema bleiben.
Dann wäre zum Beispiel dieser Thread für die meisten, die sich bisher daran beteiligt haben, reichlich uninteressant gewesen.
Die sich aus vermeintlich simplen Fragen ergebenden weiterführenden Diskussionen – die sind das "Salz in der Suppe", das das Mitlesen auch für Leute mit mehr Erfahrung noch interessant machen.
Einigen wir uns darauf, dass diesbezüglich ein Mittelmaß gefunden werden sollte. Jemandem, der nur ein Gästebuch erstellen will, dem muss man wirklich zunächst nichts über irgendwelche OO-Pattern erzählen.
|
|