Forum: Projekte & Code PART-DB RW 1.2


von Gelöscht (kami89)


Lesenswert?

kirk disen schrieb:
> bei der r514 fällt mir auf dass es in der Artikelauflistung nicht mehr
> möglich ist die Unterkategorien auszublenden.

Bist du dir da ganz sicher? Ich konnte dies bei mir nicht 
nachvollziehen. Und auch in der Online-Demo 
(http://partdb.grautier.com/) funktioniert es (Ich weiss zwar nicht 
welche SVN Revision dort läuft, aber es müsste eigentlich die jeweils 
aktuellste sein).

Zur Sicherheit kannst du ja mal noch die neuste showparts.php holen:
https://part-db.googlecode.com/svn/trunk/showparts.php

Ansonsten müsste man vielleicht mal schauen, ob Apache irgendwelche 
Fehlermeldungen liefert.

von tb (Gast)


Lesenswert?

Hi, die Demo ist momentan nicht die aktuellste hab den Server neu 
aufsetzen müssen die ist ca. 20 tage alt bin noch nicht dazu gekommen 
das autoupdaten wieder einzurichten.

von André A. (nummer5) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi,
ich find es Klasse, dass das Projekt so aktiv entwickelt wird, weiter 
so.

Ich hab meinen Widerstandsrechner auch etwas erweitert. Man kann jetzt 
den besten Widerstand aus einer E-Reihe suchen und die besten 
Widerstände für Spannungsteiler.

Anbei ein diff-File und die drei Bilder müssen in den Ordner 
tools/rechner/

Ob die Bestimmung der Widerstände die optimalste ist weis ich nicht, 
wäre nett wenn das ein paar Leute testen könnten.

Geplant ist noch ein Rechner für dem LM317.

von Gelöscht (kami89)


Lesenswert?

André Althaus schrieb:
> ich find es Klasse, dass das Projekt so aktiv entwickelt wird, weiter
> so.

Wir geben uns Mühe ;-)

> Ich hab meinen Widerstandsrechner auch etwas erweitert. Man kann jetzt
> den besten Widerstand aus einer E-Reihe suchen und die besten
> Widerstände für Spannungsteiler.
>
> Anbei ein diff-File und die drei Bilder müssen in den Ordner
> tools/rechner/

Hmm entweder bin ich zu dumm um den Patch zu übernehmen (gut möglich, 
weiss nicht wie es geht^^), oder irgendwas stimmt mit dem Patch nicht 
;-) Die JavaScript-Sachen funktionieren nach dem patchen irgendwie nicht 
mehr...Könntest du vielleicht einfach die ganzen Dateien hochladen, die 
überschrieben werden müssen? :-)

von André A. (nummer5) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi,
ich hab die Dateien nochmal angehängt. Die Datei einfach in den tools 
Ordner entpacken.

von Gelöscht (kami89)


Lesenswert?

André Althaus schrieb:
> Hi,
> ich hab die Dateien nochmal angehängt. Die Datei einfach in den tools
> Ordner entpacken.

Danke, aber bei mir funktionieren die neuen zwei Funktionen nicht. Da 
tut sich JavaScriptmässig einfach nichts. Ich habe die Dateien trotzdem 
mal ins SVN geladen (r517), dann können die anderen auch mal schauen obs 
bei ihnen funktioniert.

von André A. (nummer5) Benutzerseite


Lesenswert?

Welchen Browser benutzt du? Ich habs bisher nur mit Firefox 14 getestet.

von Gelöscht (kami89)


Lesenswert?

André Althaus schrieb:
> Welchen Browser benutzt du? Ich habs bisher nur mit Firefox 14 getestet.

Ebenfalls FF14, auf Linux Ubuntu. Die Farbringtabelle funktioniert, nur 
die neuen beiden Funktionen nicht.

Du kannst ja mal die aktuelle SVN Version beziehen und schauen ob die 
bei dir läuft. Dann reden wir auch sicher von den gleichen Dateien. Ich 
kann nicht ausschliessen dass ich irgendwas falsch gemacht habe ;-)

Oder wenn die Online-Demo bald wieder richtig funktioniert könnten wir 
es dort testen :-) (@K.J. soll nicht heissen dass du stressen sollst xD)

Ach übrigens @all:
Die Semesterprüfungen sind fast vorbei (nur noch eine), heisst also ich 
kann langsam wieder mit dem Programmieren anfangen :-) @Udo, wie weit 
bist du mit den Templates?

von Udo N. (weinbauer73)


Lesenswert?

Bei mir läuft die neue Version unter FF 14.0.1 (openSUSE 12.1) mit der 
Revision 517. Ich werde sie daher in meine übernehmen :)

von K. J. (Gast)


Lesenswert?

Hi, so die DemoDB wird jetzt wieder einmal am tag upgedated um 11:00.

mfg

von Udo N. (weinbauer73)


Lesenswert?

Leider nicht viel weiter. Hatte andere Arbeiten vorzuziehen :( Ich hoffe 
doch sehr, das ich diese Woche mal ein paar Stunden wieder daran 
arbeiten werde. Soviel Rückstand ist ja nicht, dass ich es nicht 
schaffen könnte.

von Gelöscht (kami89)


Lesenswert?

K. J. schrieb:
> Hi, so die DemoDB wird jetzt wieder einmal am tag upgedated um 11:00.
>
> mfg

Wunderbar!
Jetzt sehe ich auch dass der Widerstandsrechner funktioniert. Da muss 
wohl irgendwas an meiner Installation faul sein... Neuerdings liegen bei 
mir die Skripte auf einer Samba Freigabe, die dann nach /var/www 
gemountet werden. Vielleicht ist da ja nun irgendwo der Hund begraben...

von K. J. (Gast)


Lesenswert?

Urban B. schrieb:
> K. J. schrieb:
>> Hi, so die DemoDB wird jetzt wieder einmal am tag upgedated um 11:00.
>>
>> mfg
>
> Wunderbar!
> Jetzt sehe ich auch dass der Widerstandsrechner funktioniert. Da muss
> wohl irgendwas an meiner Installation faul sein... Neuerdings liegen bei
> mir die Skripte auf einer Samba Freigabe, die dann nach /var/www
> gemountet werden. Vielleicht ist da ja nun irgendwo der Hund begraben...

Ahm WTF du mountest ne SAMBA Freigabe in nen Webordner ? mal abgesehen 
von den Rechteproblemen, gibt es da noch diverse andere.

von Udo N. (weinbauer73)


Lesenswert?

Nimm statt Samba NFS für die Freigabe.

von Gelöscht (kami89)


Lesenswert?

K. J. schrieb:
> Ahm WTF du mountest ne SAMBA Freigabe in nen Webordner ? mal abgesehen
> von den Rechteproblemen, gibt es da noch diverse andere.

xD ja ich weiss es ist komisch aber eigentlich scheint alles zu 
funktionieren. Dass es sicherheitstechnisch vielleicht nicht optimal ist 
ist mir wurscht, läuft ja alles in meinem privaten LAN.

Der Hintergrund ist folgender:
Ich möchte den Webserver (momentan) am liebsten in einer VM laufen 
lassen, denn ich lagere gerne Software in VMs aus um mein System 
"sauber" zu halten. Die Webseiten an sich (also die Dateien) möchte ich 
aber auf meiner lokalen Festplatte haben, nicht in einer VM (1. möchte 
ich keine Dateien verlieren wenn eine VM kaputt geht (meine lokalen 
Dateien werden täglich gesichert) und 2. ist das Programmieren 
angenehmer wenn sich die Dateien auf meinem eigenen System befinden). Da 
die Webseiten sowieso Teil einer Samba Freigabe sind, dachte ich, ich 
könnte ja den freigegebenen Ordner "www" in der VM einfach per fstab 
nach "var/www" mounten. Dazu noch in der fstab "uid=33,gid=33" setzen 
damit "www-data" Zugriff auf die Dateien hat.

Wie gesagt, eigentlich funktioniert es :-) Ob das Javascript-Problem 
wirklich durch meine komische Konstellation entstanden ist, weiss ich 
nicht. Andere JavaScript Teile funktionieren wunderbar.

Udo Neist schrieb:
> Nimm statt Samba NFS für die Freigabe.

Für all meine Freigaben NFS zu verwenden geht nicht, es gibt noch einen 
Windows PC der auf die Freigaben zugreifen muss. Und Samba und NFS 
parallel zu nutzen finde ich irgendwie blöd ;-)

von Udo N. (weinbauer73)


Lesenswert?

Urban B. schrieb:
> Für all meine Freigaben NFS zu verwenden geht nicht, es gibt noch einen
> Windows PC der auf die Freigaben zugreifen muss. Und Samba und NFS
> parallel zu nutzen finde ich irgendwie blöd ;-)

Nutze ich hier schon seit Jahren. Was soll daran blöd sein? Man muss ja 
kein YP-Server parallel aufbauen g NFS v4 ist performanter, braucht 
auch nicht unbedingt Kerberos.

von Gelöscht (kami89)


Lesenswert?

Udo Neist schrieb:
> Nutze ich hier schon seit Jahren. Was soll daran blöd sein?

Naja dann ist mein PC irgendwann mehr Server als Workstation^^ Ne ich 
mag es einfach nicht wenn mein Arbeits-PC vollgestopft ist mit Software. 
Daher auch die VMs (ich könnte ja auch Apache auf meinem PC laufen 
lassen, will ich aber nicht). Ich bin auch einfach zu faul all das Zeug 
wieder zu installieren wenn ich mal mein System neu aufsetze. Lieber die 
weniger häufig verwendeten Programme in einer VM installieren, dann 
brauche ich nach einer Neuinstallation des Systems nur noch Virtualbox 
zu installieren.

Aber wenn wirklich Samba an dem JavaScript Problem schuld sein sollte, 
werde ich da natürlich schon noch was unternehmen :-) Momentan hat das 
aber keine Priorität, sonst läuft ja alles so wie es soll.


Übrigens arbeite ich gerade an der ganzen Update-Geschichte von Part-DB. 
Vor allem auch zu den Versionsbezeichnungen habe ich mir Gedanken 
gemacht. Mein Vorschlag wäre, dass ein User zwischen drei Varianten 
wählen können soll: "stable", "unstable" und "svn".
Bei "stable" soll das System nur Updates anzeigen, die als stabil 
gekennzeichnet sind. Bei "unstable" dachte ich, das sollen einfach die 
Release Candidates von der nächsten stabilen Version sein, und bei "svn" 
immer die jeweils aktuelle SVN Revision. Letzteres funktioniert 
vermutlich halt auf vielen Webspaces nicht, ist aber ja auch nicht 
weiter schlimm.
(es gibt aber sogar spezielle PHP-Funktionen um SVN-Sachen erledigen zu 
können [scheinen aber noch experimentell zu sein]. Vielleicht ist auf 
einigen Webservern ja sogar das entsprechende Plugin installiert, dann 
könnte man ein checkout machen ohne ein exec(). )

Eine stabile Version soll aus drei Ziffen bestehen, z.B: "0.2.3".
Eine unstabile Version mit dem Vermerk des RC: "0.2.4 RC3".
Und eine SVN Revision "r567".

Um diese drei Versionsbezeichnungen auch untereinander vergleichen zu 
können (zum entscheiden, welche neuer/älter ist), würde sich anbieten, 
dass die stabilen und unstabilen Versionen auch immer den Vermerk zur 
jeweiligen SVN Revision beinhalten. Also dass z.B. die Version "0.2.3" 
damals die Revision "r456" hatte.

Die Revisionsnummer wäre programmiertechnisch dann eigentlich die 
relevante Information, um Versionen untereinander vergleichen zu können. 
Wenn wir nur mit den "0.2.3"-Bezeichnungen arbeiten würden, könnte es 
sonst mal zu einem Durcheinander kommen. Man stelle sich vor, dass 
jemand von "svn" auf "stable" wechseln möchte. Wie kann dann Part-DB 
entscheiden, welche Updates es runterladen/installieren muss? Es weiss 
ja nichtmal, ob die neuste stabile Version überhaupt neuer ist als die 
aktuell installierte SVN Revision. Arbeiten wir mit den Revisionszahlen, 
ist es für das System kein Problem zu erkennen, ob ein Update verfügbar 
ist oder nicht.

Das würde dann natürlich bedeuten, dass bei jedem Update, das angeboten 
wird, auch die jeweilige Revisionsnummer hinterlegt sein muss. Aber das 
sollte ja nicht weiter stören.

von Udo N. (weinbauer73)


Lesenswert?

Urban B. schrieb:
>> Nutze ich hier schon seit Jahren. Was soll daran blöd sein?
>
> Naja dann ist mein PC irgendwann mehr Server als Workstation^^ Ne ich
> mag es einfach nicht wenn mein Arbeits-PC vollgestopft ist mit Software.
> Daher auch die VMs (ich könnte ja auch Apache auf meinem PC laufen
> lassen, will ich aber nicht). Ich bin auch einfach zu faul all das Zeug
> wieder zu installieren wenn ich mal mein System neu aufsetze. Lieber die
> weniger häufig verwendeten Programme in einer VM installieren, dann
> brauche ich nach einer Neuinstallation des Systems nur noch Virtualbox
> zu installieren.

Ich hab ein eigenes Netzwerk hier laufen. Mein Server stellt mir alles 
wichtige für die Webprogrammierung zur Verfügung. Wenn schon, dann teste 
ich es in einer realen Umgebung. Eine VM hätte nur den Vorteil, dass man 
fatale Fehler einfach schnell ungeschehen machen kann. Aber wofür hat 
man ja ein tägliches Backup oder kopiert mal schnell die betreffenden 
Dateien unter einen neuen Namen? Aber jeder arbeitet ja anders ;-)

von Udo N. (weinbauer73)


Lesenswert?

Revision 518:
- showdevices.php auf Templates umgestellt
- Anstelle von $currency wird money_format() verwendet und Darstellung 
in der Tabelle angepasst

Mir ist per Zufall die PHP-Funktion money_format() aufgefallen, als ich 
die Zahlendarstellung der Preise vereinheitlichen wollte. Diese Funktion 
kann die Währung anhand von der Umgebungsvariable LC_MONETARY und einem 
Formatstring darstellen. Somit kann auf die Variable $currency 
verzichtet werden.

ToDo: Formatstring anhand von LC_MONETARY aus einem Array entnehmen.

von Udo N. (weinbauer73)


Lesenswert?

Bei meiner Umstellung auf Templates sind mir die doch sehr 
unterschiedliche Formatierungen aufgefallen. Ich habe mir mal ein paar 
Gedanken über ein gemeinsamen Styleguid gemacht. Er sollte so einfach 
wie möglich sein, damit Einsteiger recht schnell damit zurecht kommen.
1
Styleguide --- 28.08.2012 Udo Neist (weinbauer73@gmail.com)
2
3
*** Sprache ***
4
5
- Alle Kommentare sind in Englisch zu verfassen.
6
- Deutsche Kommentare sind entsprechend zu kennzeichnen und möglichst rasch ins englische zu übersetzen.
7
- Kommentare sind nicht überflüssig, sondern notwendig!
8
9
*** Dokumentation ***
10
11
- Einleitende Kommentare für die Funktionsbeschreibung sollten nicht vergessen werden.
12
- Dokumentationssystem wird noch gesucht.
13
- Offizielles Wiki nutzen.
14
15
*** Entwicklung ***
16
17
- PHP 4 ist veraltet und sollte nicht mehr genutzt werden.
18
- Alle neuen Funktionen werden in den Branches zuerst getestet und dann in die offizielle Version übernommen.
19
- Kennzeichnung von stable, unstable und non public (oder ähnlich)-Versionen.
20
21
*** PHP-Script ***
22
23
- Einleitung mit Lizenz
24
- darunter Initiator der Datei mit Datum und Email
25
- darunter Auflistung der Änderungen im folgenden Format:
26
  -  Jahr Email
27
  -  neue Zeile
28
  -  Tabulator und "-"
29
  -  Kurze Beschreibung der Änderung
30
- möglichst eine Auflistung aller Funktionen
31
- Ausgabe von HTML nicht in das Script übernehmen, dazu Templates (vlibTemplate) nutzen.
32
- Eine zentrale Library bindet die 
33
34
*** Einrückungen ***
35
36
- 1 Tabulatorschritt umfasst 5 Spaces.
37
- Öffnende und schliessende geschweifte Klammern in einer eigenen Zeile.
38
- Jeder Block innerhalb geschweifter Klammern um einen Tab einrücken.
39
- Ausnahmen für einzeilige Blöcke. Auf Klammern sollte der Lesbarkeit wegen nicht verzichtet werden.
40
- IF-THEN-ELSE als ternärer Operator ist erlaubt, sollte  möglichst aber nur bei der Zuweisung von Werten verwendet werden.
41
- Arrays oder längere Strings so formatieren, das eine gute Lesbarkeit gewährleistet ist.
42
43
*** Benennungen ***
44
45
- Funktionen werden klein geschrieben und müssen selbst beschreibende Namen tragen.
46
- Trennung der einzelnen Wörter erfolgt mit dem Unterstrich ("_").
47
48
*** Klassen und Funktionen ***
49
50
- Sich wiederholende Funktionen bitte in Klassen auslagern.
51
- Namespaces sind möglich.
52
- Klassen mit dem Konstruktur __construct() für die Prüfung auf Abhängigkeiten der Klasse und eventuell fehlenden Funktionen versehen.
53
- Debug-Funktionen ermöglichen.

Wenn es keine größeren Widersprüche gibt, stelle ich das am Wochenende 
ins PartDB-Wiki.

von Gelöscht (kami89)


Lesenswert?

Udo Neist schrieb:
> Bei meiner Umstellung auf Templates sind mir die doch sehr
> unterschiedliche Formatierungen aufgefallen. Ich habe mir mal ein paar
> Gedanken über ein gemeinsamen Styleguid gemacht.

Gute Idee!

> *** Entwicklung ***
>
> - PHP 4 ist veraltet und sollte nicht mehr genutzt werden.

Spätestens wenn wir unsere Branches in den Trunk übernehmen, ist Part-DB 
auch gar nicht mehr lauffähig mit PHP 4, vor allem wegen dem PDO und den 
Klassen (die sich seit PHP 4 stark verändert haben und eine 
Kompatibilität sehr aufwändig machen würde). Daher ist dann "sollte 
nicht mehr genutzt werden" zu ungenau - es kann gar nicht mehr genutzt 
werden.

> - Alle neuen Funktionen werden in den Branches zuerst getestet und dann
> in die offizielle Version übernommen.

Hmm ich weiss nicht ob das wirklich notwendig ist. Wenn die User ihre 
Part-DB Installationen über die Updatefunktion ganz einfach aktuell 
halten können, wird (hoffentlich) keiner mehr die SVN-Version im Einsatz 
haben (ausser natürlich für die Entwicklung). Daher darf im Trunk 
durchaus auch mal eine Version drin sein, die noch offensichtliche 
Fehler enthält. Ich denke, das ist doch bei SVN eigentlich auch "so 
gedacht", oder?

> - Kennzeichnung von stable, unstable und non public (oder
> ähnlich)-Versionen.

Ich weiss jetzt nicht genau wie du das meinst. Ich würde mir das so 
vorstellen:
- Die Hauptentwicklung geschieht im Trunk
- Nur grössere Änderungen, die lange dauern, oder irgendwelche Tests 
werden in Branches durchgeführt (so wi wir beiden es momentan halt 
machen)
- Von Zeit zu Zeit schauen wir, dass die Version im Trunk möglichst 
stabil läuft. Dann erstellen wir vom Trunk ein Release Candidate und 
geben dieses frei für diejenigen, die bei sich die "unstable" Updates 
installieren.
- Wenn wir der Meinung sind, die aktuelle Version im Trunk ist nun 
stabil, erstellen wir ein Update-Paket und geben dieses als "stable" 
frei.

Zwischen der Herausgabe des ersten Release Candidate bis zur jeweiligen 
stabilen Version sollten natürlich keine grösseren Änderungen mehr 
durchgeführt werden (neue Funktionen usw.). Die behält man besser 
erstmal entweder bei sich auf dem PC oder halt in einem Branch. Nach der 
Herausgabe der stabilen Version kann man dann wieder im Trunk 
herumwerkeln wie man will.

> - Eine zentrale Library bindet die

das verstehe ich nicht :-)

> - 1 Tabulatorschritt umfasst 5 Spaces.

5 Spaces ist aber ziemlich unüblich, oder? 4 wären doch viel 
verbreiteter würde ich meinen.

> - Klassen mit dem Konstruktur __construct() für die Prüfung auf
> Abhängigkeiten der Klasse und eventuell fehlenden Funktionen versehen.

Hmm das verstehe ich auch nicht :-)

> - Debug-Funktionen ermöglichen.

Gute Idee, nur wie macht man das bei PHP am besten? Hat sich da irgend 
ein System eingebürgert? Einfach mit "print" irgendwelche Meldungen 
ausgeben funktioniert ja nicht immer (wenn z.B. eine Meldung innerhalb 
von einem html-<select> ausgegeben wird, wäre sie teilweise gar nicht 
ersichtlich).

Ansonsten bin ich mit dem Styleguide einverstanden.

von Udo N. (weinbauer73)


Lesenswert?

Urban B. schrieb:
>> *** Entwicklung ***
>>
>> - PHP 4 ist veraltet und sollte nicht mehr genutzt werden.
>
> Spätestens wenn wir unsere Branches in den Trunk übernehmen, ist Part-DB
> auch gar nicht mehr lauffähig mit PHP 4, vor allem wegen dem PDO und den
> Klassen (die sich seit PHP 4 stark verändert haben und eine
> Kompatibilität sehr aufwändig machen würde). Daher ist dann "sollte
> nicht mehr genutzt werden" zu ungenau - es kann gar nicht mehr genutzt
> werden.

Für uns ist es klar, aber vielleicht gibt es noch Neueinsteiger, die 
auch PHP 4 wollen? Ist nur eine Klarstellung.

>> - Alle neuen Funktionen werden in den Branches zuerst getestet und dann
>> in die offizielle Version übernommen.
>
> Hmm ich weiss nicht ob das wirklich notwendig ist. Wenn die User ihre
> Part-DB Installationen über die Updatefunktion ganz einfach aktuell
> halten können, wird (hoffentlich) keiner mehr die SVN-Version im Einsatz
> haben (ausser natürlich für die Entwicklung). Daher darf im Trunk
> durchaus auch mal eine Version drin sein, die noch offensichtliche
> Fehler enthält. Ich denke, das ist doch bei SVN eigentlich auch "so
> gedacht", oder?

Ich habe die Styleguides bewusst so geschrieben, denn es spiegelt die 
aktuelle Situation dar. Wenn später die Update-Funktion auch klappt und 
wir eine neue offzielle Version haben, würde dieser Punkt wegfallen.

>> - Kennzeichnung von stable, unstable und non public (oder
>> ähnlich)-Versionen.
>
> Ich weiss jetzt nicht genau wie du das meinst. Ich würde mir das so
> vorstellen:
> - Die Hauptentwicklung geschieht im Trunk
> - Nur grössere Änderungen, die lange dauern, oder irgendwelche Tests
> werden in Branches durchgeführt (so wi wir beiden es momentan halt
> machen)
> - Von Zeit zu Zeit schauen wir, dass die Version im Trunk möglichst
> stabil läuft. Dann erstellen wir vom Trunk ein Release Candidate und
> geben dieses frei für diejenigen, die bei sich die "unstable" Updates
> installieren.
> - Wenn wir der Meinung sind, die aktuelle Version im Trunk ist nun
> stabil, erstellen wir ein Update-Paket und geben dieses als "stable"
> frei.

Sagt das obige was anderes aus? Nicht das ich wüsste. Uns dürfte es klar 
sein, nur ob alle den Unterschied verstehen? "stable" ist der offizielle 
Teil, "unstable" die vor der Freigabe stehende und "non public" sind 
halt unsere beiden Branches. Oder wie würdest du es nennen? Release 
Candidates würde ich zu den "unstable"-Versionen zählen.

>> - Eine zentrale Library bindet die
>
> das verstehe ich nicht :-)

Na, das nicht jedes Script jede Library und Klasse selbst einbinden 
muss. Derzeit läuft das ja über die lib.php bzw. config.php und erfüllt 
damit die Bedingung.

>> - 1 Tabulatorschritt umfasst 5 Spaces.
>
> 5 Spaces ist aber ziemlich unüblich, oder? 4 wären doch viel
> verbreiteter würde ich meinen.

Bei den meisten Programmen die ich verwende sind 5 voreingestellt. Ich 
hab auch mit 4 keine Probleme. Hauptsache sauber getrennt :-)

>> - Klassen mit dem Konstruktur __construct() für die Prüfung auf
>> Abhängigkeiten der Klasse und eventuell fehlenden Funktionen versehen.
>
> Hmm das verstehe ich auch nicht :-)

Ganz einfach. Die einzelnen Klassen haben untereinander Abhängigkeiten. 
Fehlt eine Funktion, sei eine fehlende Datei im System oder eine falsche 
PHP-Version, so läuft das Script nicht. Genauso ist das mit den Rechten 
im Dateisystem (hatten wir ja schon mit get_svn_revision()), kann man 
dort auch prüfen. Ich meine, wir sollten das schon nutzen.

>> - Debug-Funktionen ermöglichen.
>
> Gute Idee, nur wie macht man das bei PHP am besten? Hat sich da irgend
> ein System eingebürgert? Einfach mit "print" irgendwelche Meldungen
> ausgeben funktioniert ja nicht immer (wenn z.B. eine Meldung innerhalb
> von einem html-<select> ausgegeben wird, wäre sie teilweise gar nicht
> ersichtlich).

Man könnte in den Templates ein Debug-Block hinzufügen, der dort gewisse 
Daten darstellt oder in ein "Logfile" schreibt, welches in einem eigenen 
Fenster regelmäßig per Ajax geladen werden kann.

> Ansonsten bin ich mit dem Styleguide einverstanden.

Gut :-)

Der Styleguide soll Neueinsteigern ein paar kleine Regeln für das 
Projekt aufzeigen, wie wir das ganze Handhaben wollen. Für uns ist das 
meiste selbstverständlich. Ich will euch ja auch nicht bevormunden, nur 
weil ich seit Anfang/Mitte der 1980er programmiere und für meine eigenen 
Projekte entsprechende Regeln versuche einzuhalten, auch wenn sie 
nirgendwo stehen. Es macht aber die Arbeit erträglicher, wenn man nach 
einiger Abwesenheit wieder am Code arbeiten "muss". Sind ja alles nur 
Vorschläge :-)

von Gelöscht (kami89)


Lesenswert?

>>> - Alle neuen Funktionen werden in den Branches zuerst getestet und dann
>>> in die offizielle Version übernommen.
>>
>> Hmm ich weiss nicht ob das wirklich notwendig ist. Wenn die User ihre
>> Part-DB Installationen über die Updatefunktion ganz einfach aktuell
>> halten können, wird (hoffentlich) keiner mehr die SVN-Version im Einsatz
>> haben (ausser natürlich für die Entwicklung). Daher darf im Trunk
>> durchaus auch mal eine Version drin sein, die noch offensichtliche
>> Fehler enthält. Ich denke, das ist doch bei SVN eigentlich auch "so
>> gedacht", oder?
>
> Ich habe die Styleguides bewusst so geschrieben, denn es spiegelt die
> aktuelle Situation dar. Wenn später die Update-Funktion auch klappt und
> wir eine neue offzielle Version haben, würde dieser Punkt wegfallen.

Ach so, ja klar, beim aktuellen Stand passt das natürlich. Irgendwie 
denke ich einfach immer schon an den Moment, wo unsere Branches zur 
stabilen Version werden^^

>>> - Kennzeichnung von stable, unstable und non public (oder
>>> ähnlich)-Versionen.
>>
>> Ich weiss jetzt nicht genau wie du das meinst. Ich würde mir das so
>> vorstellen:
>> - Die Hauptentwicklung geschieht im Trunk
>> - Nur grössere Änderungen, die lange dauern, oder irgendwelche Tests
>> werden in Branches durchgeführt (so wi wir beiden es momentan halt
>> machen)
>> - Von Zeit zu Zeit schauen wir, dass die Version im Trunk möglichst
>> stabil läuft. Dann erstellen wir vom Trunk ein Release Candidate und
>> geben dieses frei für diejenigen, die bei sich die "unstable" Updates
>> installieren.
>> - Wenn wir der Meinung sind, die aktuelle Version im Trunk ist nun
>> stabil, erstellen wir ein Update-Paket und geben dieses als "stable"
>> frei.
>
> Sagt das obige was anderes aus? Nicht das ich wüsste. Uns dürfte es klar
> sein, nur ob alle den Unterschied verstehen? "stable" ist der offizielle
> Teil, "unstable" die vor der Freigabe stehende und "non public" sind
> halt unsere beiden Branches. Oder wie würdest du es nennen? Release
> Candidates würde ich zu den "unstable"-Versionen zählen.

OK dann hast du es so gemeint wie ich. Deshalb habe ich ja geschrieben 
"Ich weiss jetzt nicht genau wie du das meinst". Dein Wort 
"kennzeichnen" hat mich verwirrt, ich wusste nicht ob du damit irgendwie 
eine explizite Kennzeichnung der Revisionen meinst oder so. Die 
eigentliche "Kennzeichnung" wird aber ja erst beim Bereitstellen von 
Updates durchgeführt, nicht vorher und nicht nachher. Also haben 
schlussendlich nur die Updatepakete eine solche Kennzeichnung, in den 
branches und im trunk gibts sowas nicht. Aber ich glaube jetzt wir 
meinen beide dasselbe, wollte nur sichergehen :-)

>>> - Eine zentrale Library bindet die
>>
>> das verstehe ich nicht :-)
>
> Na, das nicht jedes Script jede Library und Klasse selbst einbinden
> muss. Derzeit läuft das ja über die lib.php bzw. config.php und erfüllt
> damit die Bedingung.

Warum soll nicht jedes Skript jede benötigte Library und Klasse selber 
einbinden? Das ist doch die einzig "saubere" Lösung. Nur das Includen, 
was auch wirklich benötigt wird, nicht mehr und nicht weniger. Aber 
natürlich alles hierarchisch, man included nur die Klasse die man auch 
benötigt, die Abhängigkeiten dieser Klasse werden dann natürlich durch 
diese Klasse selber eingebunden.

>>> - 1 Tabulatorschritt umfasst 5 Spaces.
>>
>> 5 Spaces ist aber ziemlich unüblich, oder? 4 wären doch viel
>> verbreiteter würde ich meinen.
>
> Bei den meisten Programmen die ich verwende sind 5 voreingestellt. Ich
> hab auch mit 4 keine Probleme. Hauptsache sauber getrennt :-)

Interessant, habe noch nie 5 Spaces gesehen, darum war ich so "verwirrt" 
:-)

>>> - Klassen mit dem Konstruktur __construct() für die Prüfung auf
>>> Abhängigkeiten der Klasse und eventuell fehlenden Funktionen versehen.
>>
>> Hmm das verstehe ich auch nicht :-)
>
> Ganz einfach. Die einzelnen Klassen haben untereinander Abhängigkeiten.
> Fehlt eine Funktion, sei eine fehlende Datei im System oder eine falsche
> PHP-Version, so läuft das Script nicht. Genauso ist das mit den Rechten
> im Dateisystem (hatten wir ja schon mit get_svn_revision()), kann man
> dort auch prüfen. Ich meine, wir sollten das schon nutzen.

Ah jetzt habe ich verstanden was du meinst. Ob es Sinn macht, diese 
Sachen in den Konstruktor aufzunehmen, darüber lässt sich diskutieren. 
Steht wirklich irgend eine Funktion nicht zur Verfügung, wäre die ganze 
Klasse dann ja nicht mehr funktionsfähig. Wird die Überprüfung erst 
durchgeführt wenn eine solche Funktion gebraucht wird (oder gar nicht 
überprüft...) dann fehlt nur diese eine Funktionalität der Klasse, der 
Rest davon kann weiterhin funktionieren.

>>> - Debug-Funktionen ermöglichen.
>>
>> Gute Idee, nur wie macht man das bei PHP am besten? Hat sich da irgend
>> ein System eingebürgert? Einfach mit "print" irgendwelche Meldungen
>> ausgeben funktioniert ja nicht immer (wenn z.B. eine Meldung innerhalb
>> von einem html-<select> ausgegeben wird, wäre sie teilweise gar nicht
>> ersichtlich).
>
> Man könnte in den Templates ein Debug-Block hinzufügen, der dort gewisse
> Daten darstellt oder in ein "Logfile" schreibt, welches in einem eigenen
> Fenster regelmäßig per Ajax geladen werden kann.

Ah ja das wäre genial! Und wie würdest du dann die Debug-Meldungen an 
diese Seite übermitteln? Irgendwie mit einer globalen Variable? Mit 
$_SESSION?

> Ich will euch ja auch nicht bevormunden, nur
> weil ich seit Anfang/Mitte der 1980er programmiere und für meine eigenen
> Projekte entsprechende Regeln versuche einzuhalten, auch wenn sie
> nirgendwo stehen. Es macht aber die Arbeit erträglicher, wenn man nach
> einiger Abwesenheit wieder am Code arbeiten "muss". Sind ja alles nur
> Vorschläge :-)

Ja klar, solche Styleguides sind immer eine gute Sache, gerade bei 
OpenSource Projekten. Sofern es nicht gerade ein völlig schräger Style 
ist, bin ich dafür :-)

von Udo N. (weinbauer73)


Lesenswert?

Urban B. schrieb:
> Ach so, ja klar, beim aktuellen Stand passt das natürlich. Irgendwie
> denke ich einfach immer schon an den Moment, wo unsere Branches zur
> stabilen Version werden^^

Das habe ich bemerkt :-) Es ist ein Ziel, aber noch nicht mal im Ansatz 
sind wir beide so weit.

> OK dann hast du es so gemeint wie ich. Deshalb habe ich ja geschrieben
> "Ich weiss jetzt nicht genau wie du das meinst". Dein Wort
> "kennzeichnen" hat mich verwirrt, ich wusste nicht ob du damit irgendwie
> eine explizite Kennzeichnung der Revisionen meinst oder so. Die
> eigentliche "Kennzeichnung" wird aber ja erst beim Bereitstellen von
> Updates durchgeführt, nicht vorher und nicht nachher. Also haben
> schlussendlich nur die Updatepakete eine solche Kennzeichnung, in den
> branches und im trunk gibts sowas nicht. Aber ich glaube jetzt wir
> meinen beide dasselbe, wollte nur sichergehen :-)

Im SVN müssen wir das nicht, nur nach aussen sollte es irgendwie klar 
sein :-)

> Warum soll nicht jedes Skript jede benötigte Library und Klasse selber
> einbinden? Das ist doch die einzig "saubere" Lösung. Nur das Includen,
> was auch wirklich benötigt wird, nicht mehr und nicht weniger. Aber
> natürlich alles hierarchisch, man included nur die Klasse die man auch
> benötigt, die Abhängigkeiten dieser Klasse werden dann natürlich durch
> diese Klasse selber eingebunden.

Dann wirst du über kurz oder lang das Problem bekommen, jede 
Abhängigkeit in den einzelnen Scripten selbst zu verwalten. Durch den 
Autoloader, den ich bereits in der lib.php drin habe, werden die Klassen 
selbstständig beim ersten Aufruf geladen. So ist das Problem weg. 
Ansonsten gibt es ja fast keine weiteren Dateien mehr, die eingebunden 
werden müssten.

>>>> - 1 Tabulatorschritt umfasst 5 Spaces.
>>>
>>> 5 Spaces ist aber ziemlich unüblich, oder? 4 wären doch viel
>>> verbreiteter würde ich meinen.
>>
>> Bei den meisten Programmen die ich verwende sind 5 voreingestellt. Ich
>> hab auch mit 4 keine Probleme. Hauptsache sauber getrennt :-)
>
> Interessant, habe noch nie 5 Spaces gesehen, darum war ich so "verwirrt"
> :-)

In meinem Editor ist nur ein Tab eingestellt. Ob ein Tab 3, 4 oder 5 
Leerzeichen umfasst, ist da nur eine Darstellungssache. Ich denke, wir 
sollten da 3 bis 5 Leerzeichen reinschreiben. Weniger oder mehr macht 
die Sache dann zu unübersichtlich (hab auch mal was von 8 Leerzeichen 
pro Einrückung gelesen).

> Ah jetzt habe ich verstanden was du meinst. Ob es Sinn macht, diese
> Sachen in den Konstruktor aufzunehmen, darüber lässt sich diskutieren.
> Steht wirklich irgend eine Funktion nicht zur Verfügung, wäre die ganze
> Klasse dann ja nicht mehr funktionsfähig. Wird die Überprüfung erst
> durchgeführt wenn eine solche Funktion gebraucht wird (oder gar nicht
> überprüft...) dann fehlt nur diese eine Funktionalität der Klasse, der
> Rest davon kann weiterhin funktionieren.

Es gibt aber auch Abhängigkeiten, die man an x Stellen benötigt. Eine 
zentrale Überprüfung lohnt sich dann schon. Man kann sich aber streiten, 
ob man das will. Ich werde es zumindest in meinen Klassen einbauen, denn 
ich benötige vlibTemplate und eine Fehlerbehandlungsklasse. Ich erzeuge 
nicht schon am Anfang ein Objekt dieser Klassen, sondern kurz bevor ich 
es brauche. Fehlt die Klasse/Funktion schon am Anfang, brauche ich alles 
weitere gar nicht auszuführen. Somit gäbe es auch keine Probleme mit 
fehlerhaften Daten. Meine Meinung ist halt, dass das System nicht an 
fehlenden Funktionen hängen bleiben darf, sondern nur bei echten Fehlern 
im System. Nichts ist peinlicher, wenn man eine Abhängigkeit vergisst. 
Oder kennst du jede PHP-Installation auf Erden? Ich nicht ;-)

> Ah ja das wäre genial! Und wie würdest du dann die Debug-Meldungen an
> diese Seite übermitteln? Irgendwie mit einer globalen Variable?

Landet alles in der Datenbank. Das "Logfile" wird alle x Sekunden von 
einem Javascript per XMLHttpRequest geladen und angezeigt. Im Prinzip 
habe ich das schon in einem ganz einfach Chatsystem so gemacht :D

> Ja klar, solche Styleguides sind immer eine gute Sache, gerade bei
> OpenSource Projekten. Sofern es nicht gerade ein völlig schräger Style
> ist, bin ich dafür :-)

Keine Sorge, sowas mag ich auch nicht :-) Zudem sollen ja alle was davon 
haben, nicht ein durchgeknallter Freak allein lach

von Gelöscht (kami89)


Lesenswert?

Udo Neist schrieb:
> Dann wirst du über kurz oder lang das Problem bekommen, jede
> Abhängigkeit in den einzelnen Scripten selbst zu verwalten. Durch den
> Autoloader, den ich bereits in der lib.php drin habe, werden die Klassen
> selbstständig beim ersten Aufruf geladen. So ist das Problem weg.
> Ansonsten gibt es ja fast keine weiteren Dateien mehr, die eingebunden
> werden müssten.

Ich sehe momentan aber den Vorteil der Autoload-Funktion nicht. Sieht 
man in deinem Code auch irgendwo ein Aufruf dieser Funktion? Konnte beim 
Durchstöbern gerade keiner finden. Aber schlussendlich schreibst du dann 
einfach ein "__autoload('error')" statt einem 
"include_once('error.php')", wo ist da der Vorteil?

Also ich finde, es gehört "zum guten Ton", dass man am Anfang jeder 
Datei genau diejenigen includes einfügt, die gebraucht werden. Nicht 
mehr und nicht weniger, und auch nicht mitten in einer Datei drin. Halt 
so wie in C/C++, das ist ein ganz simples aber sauberes System.

Udo Neist schrieb:
> In meinem Editor ist nur ein Tab eingestellt. Ob ein Tab 3, 4 oder 5
> Leerzeichen umfasst, ist da nur eine Darstellungssache. Ich denke, wir
> sollten da 3 bis 5 Leerzeichen reinschreiben. Weniger oder mehr macht
> die Sache dann zu unübersichtlich (hab auch mal was von 8 Leerzeichen
> pro Einrückung gelesen).

Also wir verwenden ja Leerzeichen und nicht Tabs, dann ist es ja nicht 
mehr nur eine Darstellungssache. Ja, 8 Leereichen werden glaube ich im 
Linux Kernel verwendet :-) Ich würde vorschlagen wir nehmen 4 Zeichen, 
das ist nicht nur optisch ansprechend sondern auch ein weit verbreiteter 
"Standard" (zumindest habe ich den Eindruck, dass es weit verbreitet 
ist).

Udo Neist schrieb:
> Es gibt aber auch Abhängigkeiten, die man an x Stellen benötigt. Eine
> zentrale Überprüfung lohnt sich dann schon. Man kann sich aber streiten,
> ob man das will. Ich werde es zumindest in meinen Klassen einbauen, denn
> ich benötige vlibTemplate und eine Fehlerbehandlungsklasse. Ich erzeuge
> nicht schon am Anfang ein Objekt dieser Klassen, sondern kurz bevor ich
> es brauche. Fehlt die Klasse/Funktion schon am Anfang, brauche ich alles
> weitere gar nicht auszuführen. Somit gäbe es auch keine Probleme mit
> fehlerhaften Daten. Meine Meinung ist halt, dass das System nicht an
> fehlenden Funktionen hängen bleiben darf, sondern nur bei echten Fehlern
> im System. Nichts ist peinlicher, wenn man eine Abhängigkeit vergisst.
> Oder kennst du jede PHP-Installation auf Erden? Ich nicht ;-)

Theoretisch könnten wir das dann auch mit ein Admin-Tool erledigen. Dann 
muss es nicht jedesmal beim Anlegen eines Objektes geprüft werden. Dort 
bekommt man dann direkt einen Überblick, welche Funktionen nicht zur 
Verfügung stehen, und was die Konsequenzen davon sind. Ist z.B. kein 
Modul für Zip-Archive vorhanden, funktioniert das System trotzdem, nur 
die Updatefunktion läuft dann halt nicht, und das könnte dann das 
Admin-Tool dem Benutzer mitteilen.

Ich dachte auch schon an ein Admin-Tool, bei dem man die Dateirechte der 
Systemdateien überprüfen kann (falsche Rechte stellen ja ein 
Sicherheitsrisiko dar). z.B. bei CMS Systemen gibts ja häufig nach dem 
Installieren eine Warnung wenn irgendwelche Zugriffsrechte nicht 
stimmen.

Dieses Admin-Tool könnte man vielleicht auch gleich nach jedem Update 
anzeigen lassen, um gleich überprüfen zu können ob alles notwendige 
vorhanden ist und die Dateirechte stimen.

Udo Neist schrieb:
> Landet alles in der Datenbank. Das "Logfile" wird alle x Sekunden von
> einem Javascript per XMLHttpRequest geladen und angezeigt. Im Prinzip
> habe ich das schon in einem ganz einfach Chatsystem so gemacht :D

Ah, ja, also eine Tabelle "debug_logs" o.ä. anlegen, in der dann alle 
debug Meldungen landen? Das wäre genial!

Ach ja, als ich an meinen Klassen weiterarbeiten wollte, ist mir in den 
Sinn gekommen dass ja noch das Datenbankupdate für das neue 
Preis/Lieferantensystem fehlt, weisst du noch? :-)

von Gelöscht (kami89)


Lesenswert?

Urban B. schrieb:
> Ah, ja, also eine Tabelle "debug_logs" o.ä. anlegen, in der dann alle
> debug Meldungen landen? Das wäre genial!

Das habe ich nun bei mir bereits eingebaut, da ich dieses Feature extrem 
gut gebrauchen kann beim programmieren der Klassen. Ist zwar erstmal nur 
mit HTML gebaut, aber das kann man auch später noch durch JavaScript 
ersetzen. Funktionieren tuts mit HTML auch einwandfrei.

Ich wollte dir das nur schnell schreiben, nicht dass du auch noch sowas 
baust.

Jetzt brauche ich nur noch einen dritten Bildschirm um dort die 
Debug-Meldungen anzuzeigen :-)

von Udo N. (weinbauer73)


Lesenswert?

Urban B. schrieb:
> Ich sehe momentan aber den Vorteil der Autoload-Funktion nicht. Sieht
> man in deinem Code auch irgendwo ein Aufruf dieser Funktion? Konnte beim
> Durchstöbern gerade keiner finden. Aber schlussendlich schreibst du dann
> einfach ein "__autoload('error')" statt einem
> "include_once('error.php')", wo ist da der Vorteil?

Aus der lib.php:
1
function __autoload($classname) {
2
    if ( $classname == '_exception' ) $classname = 'error';
3
    include_once(strtolower($classname).".php");
4
}

Es wird kein Aufruf benötigt, es ist eine "magische" Funktion. 
__autoload() wird durch new() automatisch aufgerufen und lädt die 
entsprechende Klasse. Diese Funktion muss ich irgendwann auf 
spl_autoload_register() umschreiben, denn __autoload() soll irgendwann 
verschwinden.

http://php.net/manual/de/language.oop5.autoload.php

> Also ich finde, es gehört "zum guten Ton", dass man am Anfang jeder
> Datei genau diejenigen includes einfügt, die gebraucht werden. Nicht
> mehr und nicht weniger, und auch nicht mitten in einer Datei drin. Halt
> so wie in C/C++, das ist ein ganz simples aber sauberes System.

Was ist das anderes, als wenn ganz oben eine einzelne Library 
eingebunden wird, in dem alle Includes stattfinden? Wenn du in jede 
Datei die ganzen Includes schreibst, dann nimm include_once() bzw. 
require_once(), sonst bekommst du u.U. Probleme mit doppelt 
eingebundenen Dateien!

Ich hab in deinem Branch noch nicht gesehen, wieviele Includes/Requires 
du machen musst. __autoload() reduziert zumindest die vielen Includes 
der Klassen.

> Udo Neist schrieb:
> Also wir verwenden ja Leerzeichen und nicht Tabs, dann ist es ja nicht
> mehr nur eine Darstellungssache. Ja, 8 Leereichen werden glaube ich im
> Linux Kernel verwendet :-) Ich würde vorschlagen wir nehmen 4 Zeichen,
> das ist nicht nur optisch ansprechend sondern auch ein weit verbreiteter
> "Standard" (zumindest habe ich den Eindruck, dass es weit verbreitet
> ist).

Ob ich nun Tab mit 5 oder 4 Leerzeichen in der Darstellung oder vom 
Editor direkt in Leerzeichen umgewandelt werden, das stört doch 
niemanden. Ich bin aber nicht päpstlicher als der Papst und habs auf 4 
Leerzeichen umgestellt :)

> Theoretisch könnten wir das dann auch mit ein Admin-Tool erledigen. Dann
> muss es nicht jedesmal beim Anlegen eines Objektes geprüft werden. Dort
> bekommt man dann direkt einen Überblick, welche Funktionen nicht zur
> Verfügung stehen, und was die Konsequenzen davon sind. Ist z.B. kein
> Modul für Zip-Archive vorhanden, funktioniert das System trotzdem, nur
> die Updatefunktion läuft dann halt nicht, und das könnte dann das
> Admin-Tool dem Benutzer mitteilen.

Du hast es nicht ganz verstanden. Jedes Update des zu Grunde liegenden 
Systems kann zu einer Fehlfunktion führen. Kein Script der Welt prüft 
vorher nach und blockiert fehlende Funktionen. Sowas wird in einem 
try-catch-Block gemacht oder mit function_exists(), wenn diese Funktion 
noch nicht offiziell existiert. Man weiß ja schliesslich nicht, welche 
Version auf dem Server genau installiert ist.

PHP ist deutlich anders als C/C++, auch wenn es ähnliche Konzepte 
mitbringt. Was bei C/C++ üblich ist, ist nicht unbedingt auch die 
richtige Vorgehensweise bei PHP. In C/C++ ist der Sprach- und 
Funktionsumfang genormt. Einige Funktionen sind nicht in PHP selbst, 
sondern per PEAR eingebunden oder sind noch als experimentell 
gekennzeichnet und daher fraglich. So verhält es sich derzeit mit 
money_format(), welches ich benutze. Fehlt es, so bilde ich es nach. Es 
ist hilfreich, auch mal bei php.net die Kommentare zu lesen ;-)

> Ich dachte auch schon an ein Admin-Tool, bei dem man die Dateirechte der
> Systemdateien überprüfen kann (falsche Rechte stellen ja ein
> Sicherheitsrisiko dar). z.B. bei CMS Systemen gibts ja häufig nach dem
> Installieren eine Warnung wenn irgendwelche Zugriffsrechte nicht
> stimmen.

Das hatte ich als repair.ups-Script in meinem Updatesystem bereits 
vorgesehen :-)

Urban B. schrieb:
> Das habe ich nun bei mir bereits eingebaut, da ich dieses Feature extrem
> gut gebrauchen kann beim programmieren der Klassen. Ist zwar erstmal nur
> mit HTML gebaut, aber das kann man auch später noch durch JavaScript
> ersetzen. Funktionieren tuts mit HTML auch einwandfrei.

Das du das "Logfile" bereits umgesetzt hast, das ist löblich :-) Erspart 
mir zumindest eine weitere Baustelle. Wenn du es hochgeladen hast, kann 
ich das ja auch bei mir schon einbauen. Das xhr-Teil schreibe ich dann.

von b.r (Gast)


Lesenswert?

Hallo an alle Mitentwickler!

1. Es wäre mal an der Zeit einen neuen Thread aufzumachen. Zwecks 
besserer Ladezeiten und vielleicht auch einem aussagekräftigeren 
Threadtitel?

2. Das mit den 4 Leerzeichen scheint ja nun Konsens zu sein und findet 
meine vollste Zustimmung. Gibt es schon einen guten Platz/Link für die 
Coding Guidelines?

3. Debuglog bzw. SQL-Transaction-Log finde ich eine tolle Sache, hatte 
ich auch schonmal im Hinterkopf.

4. (@kami) die leeren Tabellen bei den Preisen waren wirklich für 
Preisstaffeln und mehrere Lieferanten gedacht. Kann also gerne noch 
richtig umgesetzt werden.

5. Momentan haben wir - so wie ich das sehe - zwei Entwicklungen: 
Templates und OOP. Jedes neue Feature macht daher doppelt Arbeit 
(entweder für den Einpfleger, oder für den Entwickler). Wir sollten uns 
vielleicht erstmal auf eine Sache konzentrieren.

6. SVN-Nutzung:
Die zwei Entwicklungsrichtungen spiegeln sich ja in den beiden 
User-Branches wieder.
Ich würde mal folgenden Vorschlag machen:
Im TRUNK liegt die Stable-Version, auf der nur kleine Bug-fixes gemacht 
werden. Neue Sachen werden in einem testing-Branch ausprobiert.
Ungefähr alle drei Monate wird unstable zu stable gemacht und ein 
hübsches Download-Paket geschnürt.

7. Bei größeren Versionssprüngen, wenn z.B. Version 0.3 mit templates & 
oop fertig ist, wird die Datenbankversion auf 100 gesetzt und alle 
Datenbankupdates aus dem Code entfernt bzw. in ein manuelles Skript 
verschoben.

So. Das wars erstmal.

Grüße
b.r

von b.r (Gast)


Lesenswert?

b.r schrieb:
> 1. Es wäre mal an der Zeit einen neuen Thread aufzumachen. Zwecks
> besserer Ladezeiten und vielleicht auch einem aussagekräftigeren
> Threadtitel?
Da mach ich mal die Ingrid.
Hier geht's (hoffentlich) weiter:
Beitrag "Lagerverwaltung Part-DB V0.2.2"

Also nochmal, für alle die es erst beim zweiten Mal gelesen haben:
Neue Beiträge zum Thema bitte hier abliefern:
Beitrag "Lagerverwaltung Part-DB V0.2.2"

Grüße
b.r

P.S.:
Habt Ihr schonmal hier reingeschaut?!?
Beitrag "Lagerverwaltung Part-DB V0.2.2"

von Udo N. (weinbauer73)


Lesenswert?

Antwort siehe neuen Thread Beitrag "Lagerverwaltung Part-DB V0.2.2"

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

b.r schrieb:
> Es wäre mal an der Zeit einen neuen Thread aufzumachen.
Und Udo Neist schrieb:
> Antwort siehe neuen Thread Beitrag "Lagerverwaltung Part-DB V0.2.2"

Wenn das Konsens ist, schlage ich vor, diesen Thread von einem Admin 
schließen zu lassen, sonst wird's noch unübersichtlicher. Nach dem 
Thread Beitrag "Teile-Verwaltung für elektronische Bauteile" zur 
"Part-db Lagerverwaltung" ist das nämlich mindestens schon der 
dritte Thread.

Soll im Artikel Part-DB RW - Lagerverwaltung unter "Wünsche / 
Verbesserungsvorschläge / Bugreports" der Link auf den neuen Thread Nr. 
269289 angepaßt werden?

von Maxim (Gast)


Lesenswert?

Hallo,
ich bin nach der Suche nach einer Installations Anleitung für PART-DB 
2.2.
Ich selber habe danach gesucht leider aber für mich, als Anfänger 
ernüchternde Anleitungen gefunden und nicht weitergekommen.
Gib es ausführliche Anleitung ? wenn nicht besteht vielleicht eine 
Möglichkeit eine ausführliche Anleitung für PART-DB 2.2 zu erstellen 
(Schritt bei Schritt) bin wahrscheinlich nicht der erste der danach 
sucht!

Grüße
Mamim

von Uhu U. (uhu)


Lesenswert?

Wo findet man denn das aktuelle Installationspaket?

von Gelöscht (kami89)


Lesenswert?

Uhu Uhuhu schrieb:
> Wo findet man denn das aktuelle Installationspaket?

Bitte nicht mehr diesen Thread hier benutzen. Die Antwort habe ich hier 
gepostet: Beitrag "Re: Lagerverwaltung Part-DB V0.2.2"

von Uhu U. (uhu)


Lesenswert?

Dann sollte man diesen Thread vielleicht mit einem Vorhängeschloß 
versehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Getan.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.