wohlgeformte verschachtelte Listen

- html
1 Gunnar Bittersmann
0 MB
1 Matthias Apsel
0 Rolf B
0 MB
1 Gunnar Bittersmann
0 MB
1 Gunnar Bittersmann
0 MB
0 dedlfix
0 MB
0 MB
- debugging
- html
0 Emil
moin,
ich hab eine verschachtelte Liste mit PHP generiert. Das Dient für die Argumente der Methoden und Funktionen für ein lesbares Debugging. Ich habe das im HTML 5 stiel in der Form Generiert:
<figure>
<figcaption>Foobar</figcaption>
<ul>
<li>Fuz</li>
<li>Baz</li>
<li>
<figure>
<figcaption>…</figcaption>
<ul>
…
</ul>
<figure>
</li>
<li>…</li>
</ul>
</figure>
Ist es ok und mekert ein HTML Parser nicht wenn es verschachtelte <figure>
-Elemente gibt? Wenn ja, wie kriege ich hin, das ich Überschriften für verschachtelte HTML-Listen bekomme. Vielleicht ein <small>
- oder etwa ein <strong>
-Element? Die Wichtigkeit der Überschrift sollte gegebensein. In der Überschrift - in meinem Fall - können primitiven Datentypen und Objekte enthalten sein (Ich möchte ungern <div>
-Elemente verwenden).
Wie ist es am sinnvollsten primitive Datentypen mit Identifiers gepart in einer Listeanzuzeigen?
lgmb
@@MB
<figure> <figcaption>Foobar</figcaption> <ul> <li>Fuz</li> <li>Baz</li> <li> <figure> <figcaption>…</figcaption> <ul> … </ul> <figure> </li> <li>…</li> </ul> </figure>
Ist es ok und mekert ein HTML Parser nicht wenn es verschachtelte
<figure>
-Elemente gibt?
Warum probierst du es nicht aus? Warum liest du nicht in der Spec nach?
TL;DR: figure
darf flow content enthalten. figure
ist flow content.
Die Frage nach der Zulässigkeit verschachtelter figure
-Elemente beantwortet nicht die Frage nach der Sinnhaftigkeit.
Wenn ja, wie kriege ich hin, das ich Überschriften für verschachtelte HTML-Listen bekomme. Vielleicht ein
<small>
- oder etwa ein<strong>
-Element?
Das lässt sich ohne Kenntnis deines Inhalts nicht sagen. Dein Code ist ein Musterbeispiel dafür, warum Beispielquelltext nicht Foobar
, Fuz
und Baz
enthalten sollte.
Ist …
gleichberechtigt mit Fuz
und Baz
?
Die Wichtigkeit der Überschrift sollte gegebensein.
Wenn es sich um eine Überschrift handelt, sollte das Markup als Überschrift gegeben sein.
Ob es sich um eine Überschrift handelt, lässt sich ohne Kenntnis deines Inhalts nicht sagen.
LLAP 🖖
moin,
Warum probierst du es nicht aus? Warum liest du nicht in der Spec nach?
Dank für den Link…
TL;DR:
figure
darf flow content enthalten.figure
ist flow content.
Danke
Die Frage nach der Zulässigkeit verschachtelter
figure
-Elemente beantwortet nicht die Frage nach der Sinnhaftigkeit.
ich hab wohl die Begrifflichkeiten verwechselt.
Das lässt sich ohne Kenntnis deines Inhalts nicht sagen. Dein Code ist ein Musterbeispiel dafür, warum Beispielquelltext nicht
Foobar
,Fuz
undBaz
enthalten sollte.
Sorry. Ich hab wohl ein kategorisches und ein konkreten Beispiel eins geschrieben 😕.
<figure>
<figcaption>Object(Customer)</figcaption>
<ul>
<li>
<figure>
<figcaption>array</figcaption>
<ul>
<li>firstname : string</li>
<li>lastname : string</li>
</li>
</figure>
</li>
<li>
<figure>
<figcaption>array</figcaption>
<ul>
<li>street : string</li>
<li>No : int</li>
<li>postcode : string</li>
<li>city : string</li>
<li>country : string</li>
</ul>
<figure>
</li>
<li>
<figure>
<figcaption>Object(System)</figcaption>
<ul>
<li>ID : int</li>
<li>…</li>
</li>
</figure>
</li>
</ul>
</figure>
So konkret genug?
Wie erwähnt habe ich eine Klasse für den Debug entworfen welches das im Exception--Fall mit $ex->getTrace()
arbeitet. wenn args
als Key auftaucht, formt eine Klasse das Array um und generiert eine andere Klasse die HTML-Liste.
Ist
…
gleichberechtigt mitFuz
undBaz
?
ist es
Wenn es sich um eine Überschrift handelt, sollte das Markup als Überschrift gegeben sein.
Markup? Sorry in welchem Kontext???
lgmb
Hallo MB,
Wenn es sich um eine Überschrift handelt, sollte das Markup als Überschrift gegeben sein.
Markup? Sorry in welchem Kontext???
HTML – h1 … h6
Bis demnächst
Matthias
Hallo MB,
vom Gefühl her, aber ohne echte Begründung, würde ich sagen: Das ist keine Liste. Der Customer ist ein <article> und die Attributgruppen darunter sind <section>. Die <figcaption>s sind h1/h2 oder h2/h3, je nach dem, was sonst auf der Seite steht. Gibt es weitere Schachtelungsstufen?
Rolf
moin,
vom Gefühl her, aber ohne echte Begründung, würde ich sagen: Das ist keine Liste. Der Customer ist ein <article> und die Attributgruppen darunter sind <section>. Die <figcaption>s sind h1/h2 oder h2/h3, je nach dem, was sonst auf der Seite steht. Gibt es weitere Schachtelungsstufen?
das ist nicht meine absicht. Ich hab irgend was halbwegs verwentbares als Foobar
usw. reingeschrieben und total unkonkret. Ich hab ja eine Debug Klasse geschrieben alla:
class Debugger {
const CODE = [
1 => 'ERROR',
2 => '...',
// ...
private $error = null;
public function __construct() {
set_exception_handler( [ $this, 'exception' ] );
set_error_handler( [ $this, 'error' ] );
}
public function error(
int $code,
string $message,
string $file,
string $line,
array $trace
) : void {
// Code
}
public function exception( Throwable $throw ) : void {
$this->error = new ErrorModel( /* CODE */ );
// Code
}
// Methods
}
Und da wird eine Error Klasse über ListFactory()
mit ListConstructor()
generiert und in HTML gerendert. Genaueres müsste ich in meinen Code gucken.
Ich wollte einfach meine 2 Eingangsfragen wissen und die erste - eigentlich beide - hat mir @Gunnar Bittersmann beantwortet.
lgmb
@@MB
Ist
…
gleichberechtigt mitFuz
undBaz
?ist es
Dann sollte gleichartige Dinge gleichartig ausgezeichnet werden. Was auch heißen kann: innerhalb des li
gar nicht:
<?>Foobar</?>
<ul>
<li>Fuz</li>
<li>Baz</li>
<li>…
<ul>
…
</ul>
</li>
<li>…</li>
</ul>
LLAP 🖖
moin,
Ist
…
gleichberechtigt mitFuz
undBaz
?ist es
Dann sollte gleichartige Dinge gleichartig ausgezeichnet werden. Was auch heißen kann: innerhalb des
li
gar nicht:
Welche gleichartigen Dinge? Was innerhalb des <li>
-Elementes garnicht. Sry, ich bin sehr Begriffsstützig. 😕
lgmb
Hallo MB,
Welche gleichartigen Dinge? Was innerhalb des
<li>
-Elementes garnicht. Sry, ich bin sehr Begriffsstützig. 😕
in Listen werden normalerweise gleichartige Dinge zusammengefasst.
Bis demnächst
Matthias
@@MB
<figure> <figcaption>Object(Customer)</figcaption> <ul> <li> <figure> <figcaption>array</figcaption> <ul> <li>firstname : string</li> <li>lastname : string</li> </li> </figure> </li> <li> <figure> <figcaption>array</figcaption> <ul> <li>street : string</li> <li>No : int</li> <li>postcode : string</li> <li>city : string</li> <li>country : string</li> </ul> <figure> </li> <li> <figure> <figcaption>Object(System)</figcaption> <ul> <li>ID : int</li> <li>…</li> </li> </figure> </li> </ul> </figure>
<?>Object(Customer)</?>
<dl>
<div>
<dt>array</dt>
<dd>firstname : string</dd>
<dd>lastname : string</dd>
</div>
<div>
<dt>array</dt>
<dd>street : string</dd>
<dd>No : int</dd>
<dd>postcode : string</dd>
<dd>city : string</dd>
<dd>country : string</dd>
</div>
<div>
<dt>Object(System)</dt>
<dd>ID : int</dd>
<dd>…</dd>
</div>
</dl>
LLAP 🖖
moin,
Sorry. Ichverstehe nicht was die Beiden Codes bedeuten. Der eine "ja" und der andere "nein", oder Alternativen???
lgmb
Hallo MB,
Sorry. Ichverstehe nicht was die Beiden Codes bedeuten. Der eine "ja" und der andere "nein", oder Alternativen???
Der zweite beschreibt eine semantisch passende Struktur für die ausführliche Darstellung von zu debuggenden Objekten.
Bis demnächst
Matthias
moin,
Dankeschön 😀
lgmb
@@MB
moin,
Sorry. Ichverstehe nicht was die Beiden Codes bedeuten. Der eine "ja" und der andere "nein", oder Alternativen???
Der eine ist deiner, der andere meiner.
Durch die Rahmenlinien ist das aber wirklich nicht gut erkennbar:
Aua, was beißt mich da ins Bein? Ah, ein Knoten im Taschentuch …
LLAP 🖖
moin,
Sorry. Ichverstehe nicht was die Beiden Codes bedeuten. Der eine "ja" und der andere "nein", oder Alternativen???
Der eine ist deiner, der andere meiner.
danke für den Hinweis.
Durch die Rahmenlinien ist das aber wirklich nicht gut erkennbar:
Du meinst die zwei Rahmenlinien in deinem Bild, die meinen und deinen code, im Beispiel, begrenzen?
Aua, was beißt mich da ins Bein? Ah, ein Knoten im Taschentuch …
Sry, das checke ich nicht. Ich vermute es eine Floskel die ich nicht verstehe. Wenn dem so ist, bedarf es keiner weiteren Bemerkung.
lgmb
Hallo MB,
Du meinst die zwei Rahmenlinien in deinem Bild, die meinen und deinen code, im Beispiel, begrenzen?
Ja.
Bis demnächst
Matthias
Tach!
ich hab eine verschachtelte Liste mit PHP generiert. Das Dient für die Argumente der Methoden und Funktionen für ein lesbares Debugging.
Man kann natürlich Debug-Ausgaben auch vergolden. Aber für solch einen temporären Zweck spielt es überhaupt keine gesteigerte Rolle, ob der HTML-Code gültig oder sinnvoll ist. Das schaut nur der Entwickler an, und es muss lediglich etwas brauchbares auf dessen Bildschirm erscheinen. Im Prinzip reicht auch Plaintext mit Leerzeichen-Einrückungen. Du kannst das aber selbstverständlich auch als Fingerübung ansehen und trotzdem sinnvolles HTML erzeugen. Für den eigentlichen Zweck wüsste ich aber besseres mit meiner Zeit anzufangen und nähme eine IDE mit eingebautem Debugger.
dedlfix.
moin,
ich hab eine verschachtelte Liste mit PHP generiert. Das Dient für die Argumente der Methoden und Funktionen für ein lesbares Debugging.
Man kann natürlich Debug-Ausgaben auch vergolden. [...]
wenns so einfach wäre 😕. Ich vergess alles, überlese etwas, interpretiere falsch, lasse was aus und der gesamte Kontext ändert sich usw.! Es ist schon gut was ich mache und dann noch die Farbgestaltung und monospace schrift verpasst fertig. Mir hilfts sehr!
Ich finds wirklich fantastisch wenn andere ohne das vergoldete klar kommen. Ich hingegen bin auf das funkeln angewiesen und ich bin auch extrem froh, das ich einen IDE der intelisense verfügt. So kann ich komplexen Code schreiben. Mit der PHPDoc bin ich auf der ganz sicheren Seite!!!
lgmb
moin,
ich hab eine verschachtelte Liste mit PHP generiert. Das Dient für die Argumente der Methoden und Funktionen für ein lesbares Debugging.
Man kann natürlich Debug-Ausgaben auch vergolden. […] Für den eigentlichen Zweck wüsste ich aber besseres mit meiner Zeit anzufangen und nähme eine IDE mit eingebautem Debugger.
Kannst du mir n guten IDE mit eingebautem Debugger emphelen???
lgmb
Tach!
Kannst du mir n guten IDE mit eingebautem Debugger emphelen???
Ich verwende PhpStorm von JetBrains (kostet je nach Lizenzmodel). Das Problem bei PHP ist allerdings nicht nur, eine entsprechende IDE zu haben, sondern man muss auch noch PHP um eine Debug-Extension (XDebug) erweitern, damit es mit der IDE kommunizieren kann. Was da zu tun ist, ist aber dokumentiert. Das Vorbereiten zum Debuggen beschränkt sich dann auf Mausklicks zum Setzen von Breakpoints, anstatt dass man die Scripts mit Debug-Code erweitert und hinterher wieder aufräumen muss. Man kann dann sämtliche Variablen und den Callstack untersuchen und nicht nur das, was man in seinem Debug-Code berücksichtigt hat. Schrittweises Voranschreiten und weiter untersuchen zu können, ist auch effizienter als abzubrechen, neuen Debug-Code einzubauen und wieder zu starten.
dedlfix.
moin,
Tach!
Kannst du mir n guten IDE mit eingebautem Debugger emphelen???
Ich verwende PhpStorm von JetBrains
Danke. geht das auch mit NetBeans?
[…] sondern man muss auch noch PHP um eine Debug-Extension (XDebug) erweitern, damit es mit der IDE kommunizieren kann.
Ich weis
Schrittweises Voranschreiten und weiter untersuchen zu können, ist auch effizienter als abzubrechen, neuen Debug-Code einzubauen und wieder zu starten.
Ich möchte ja nur einen Fehlerfall Dokumentieren. Daher habe ich das gemacht. "Search And Destroy" ist nicht aufgabe meiner Debugger Klasse
dedlfix.
lgmb
Debuggen beginnt damit daß man Datenstukturen nicht unnötig schachtelt. Zur visuellen Darstellung Solcher braucht man kein HTML, da gibt es Dumper. MFG
moin,
Zur visuellen Darstellung Solcher braucht man kein HTML, da gibt es Dumper.
Ich referenziere da 1755244#m1755244
lgmb
Is ok. Süntaxhaileitnings hat mich auch son geholfe. Zeigt aber auch manchmal Fehler wenn gar keiner ist. Man sollte auch mal selber denken ab und zu. Muss man machen, kann man aber nicht. Schöne Sonnabend!
PS: Mein nächstes Programm schreib ich wie ein Affe auf Schreibmaschine das Wort Schäksbier tippt. Also wiviele Versuche er dazu braucht wird dann mitgezählt.