zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden PHP-Skript für das Erzeugen einer unverschachtelten Navi

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 21.03.2018, 09:05
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.836
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
Hier verstehe ich Dein Argument nicht. Warum würde durch eine zweispaltige Matrix im Gegensatz zu einer vierspaltigen Flexibilität zerstört?

In dem "vierspaltigen Array" gibt es doch total viel Wiederholung.
Soll denn sowas nicht möglichst vermieden werden, damit Code gut wartbar bleibt.
Nein. Das sind zwei unterschiedliche Punkte. Bei der Vermeidung von Codewiederhohlung geht es nicht um Daten, sondern um Programmcode und Wartbarkeit wird nicht durch Kürzung des Code erreicht.

Der Vorteil der benannten Parameter ist der, dass du erkennst was welcher Wert ist. Das ist hier unterstes Level, aber es zeigt worum es geht.

Zitat:
Zitat von AndreasB Beitrag anzeigen
HTML-Code:
['text' => 'Home', 'url' => '/'],
['text' => 'Neues', 'url' => '/neues'], 
['text' => 'Foo', 'url' => '/foo']
ist doch weniger gut wartbar als
HTML-Code:
§[ 
	'text'  'url'
	'Home'  '/'	
	'Neues' '/neues'
	'Foo'   '/foo'
]§
Sowas fände ich sehr gut wartbar/lesbar.
(Eigentlich gibt es keinen Grund Pseudocode zu fabrizieren, ich hatte dir den äquivalenten PHP Code schon gezeigt)

Inwiefern besser wartbar? woran erkennst du (in zwei Jahren) was die Werte bedeuten?

Microoptmierung ist der Beginn des Chaos. Nur weil du vielleicht 50 Bytes und 0.1µS Laufzeit sparst hast du nichts gewonnen.

Oder was machst du, wenn du das Array erweitern möchtest?
z.b. so
PHP-Code:
    $entries = array(
    [
'text' => 'home''url' => '/''title' => 'Startseite'],
    [
'text' => 'neues''url' => '/news''irgendetwas' => 'tu_was_anderes'],
    [
'text' => 'kontakt''url' => '/php/kontakt.php'],
    [
'text' => 'extern''url' => 'http://example.org/','class' => 'ext_link'],
    ); 
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 21.03.2018, 09:31
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.221
AndreasB wird schon bald berühmt werden
Standard

@protonenbeschleuniger

Mir geht es in keiner Weise um "Mikroptimierung" oder "Performance" oder "Dateigrößen".

Mir ging es allein um die Lesbarkeit/Wartbarkeit von Programmiercode.

Mein fiktives Beispiel ist für meine Augen drastisch besser lesbar als Dein Array.

Aber vielleicht empfinden wir das einfach verschieden und lassen es so stehen.
Meine Vermutung war, dass es durchaus objektiv messbare Merkmale für Lesbarkeit von Code gibt.

Danke für Dein Beispiel mit der Erweiterbarkeit Deines Codes.

Das Konzept eines assoziativen Arrays habe ich noch nicht verstanden, das hole ich nach. Vorerst erscheint es mir etwas unübersichtlich, wenn "mittendrin" statt "ganz oben" neue Variablen (bei Deinem Beispiel "irgendwas" und "class") deklariert werden.

Wie auch immer. Das führt uns wohl zu weit, denn ich kann ja bei Konzepten/Syntax und Architektur von Programmiersprachen nicht mitreden.

Ich habe ja lediglich mal gesehen, wie schön Python-Code im Vergleich zu anderen Programmiersprachen meinem Auge erschien.

Es würde mir übrigens in unserer Konversation helfen, wenn Du manchmal sagen würdest "Andreas, ich verstehe Deinen Gedanken und finde die tabellarische Darstellung in Deinem fiktiven Code auch sehr gut lesbar, aber eine solche Schreibweise hat folgenden Nachteil für die Erweiterbarkeit ..."

So lese ich bei Dir vor allem implizit heraus "Andreas, was Dir vorschwebt ist völlig sinnloser Quatsch, ich kann in keiner Weise verstehen, wie Du darauf kommst."
__________________


Geändert von AndreasB (21.03.2018 um 09:36 Uhr)
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 21.03.2018, 09:55
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.836
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
Mir geht es in keiner Weise um "Mikroptimierung" oder "Performance" oder "Dateigrößen".
Das ist aber der einzige Effekt deiner "Optimierung" und deine Fragen in anderen Threads deuten darauf hin, dass du ein grosses faible für Mikrooptimierung hast.

Und ich kann mich nur wiederholen, ich kenne das aus eigener Erfahrung. Es führt niemals zu besser lesbaren Code wenn man Code kürzt.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Mir ging es allein um die Lesbarkeit/Wartbarkeit von Programmiercode.

Mein fiktives Beispiel ist für meine Augen drastisch besser lesbar als Dein Array.
Da sagt der erfahrene Programmierer: "du irrst dich".

Ich hatte dich aber konkret gefragt, was liest du aus dem Array? Ich sag es dir: Nichts!

Du weisst JETZT, dass das erste Element des Array der Text ist und das zweite die URL. Wenn noch weitere Eigenschaften hinzukommen, dann ist das dritte Element die Klasse, das vierte der Titel.

Weiter unten in der Funktion steht der eigentliche Programmcode und dort werden die Daten genutzt, das sähe dann mit deiner Version so aus:

PHP-Code:
printf('<li class="%s"><a href="%s" title="%s">%s</a></li>'$link[3], $link[1], $link[4], $link[0]); 
und das hälst du für besser lesbar als:
PHP-Code:
printf('<li class="%s"><a href="%s" title="%s">%s</a></li>'$link['class'], $link['url'], $link['text'], $link['title']); 
und wie gesagt, wir reden hier nur über einen 3 Zeiler. In einem etwas größeren Programm, wirst du deinen Codevariante schon nach wenigen Tagen hassen, weil du nichts mehr findest und die Erweiterbarkeit massiv erschwerst und am Schluss mehr aufgeblähten Code hast, als mit der anderen Variante.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Danke für Dein Beispiel mit der Erweiterbarkeit Deines Codes.

Das Konzept eines assoziativen Arrays habe ich noch nicht verstanden, das hole ich nach. Vorerst erscheint es mir etwas unübersichtlich, wenn "mittendrin" statt "ganz oben" neue Variablen (bei Deinem Beispiel "irgendwas" und "class") deklariert werden.
Das sind keine neue Variabeln, sondern Eigenschaften. Und was du als Mittendrin bezeichnest, ist ein Beispiel für Flexibilität, diese Eigenschaften könnte es geben oder nicht. Die Anordnung ist dabei auch völlig Variabel.

Das Konzept des AA ist weit verbreitet und du hast es sicher verstanden, denn wendest es z.b.auch in HTML oder CSS schon massiv an.

HTML-Code:
p {
width:60%;
height:2em;
color:blue;
background-color:#fff
}
ist exakt das - ein assoziatives Array oder Hash - und wie oft kommt in deinem CSS color vor?
du behauptest hier, der Code wäre besser lesbar, wenn dort nur so was stehen würde:
HTML-Code:
p [60%, 2em, blue, #fff]
Wie gesagt, mit deinem ständigen Hinterfragen von Selbstverständlichkeiten wirst du nur sehr, sehr langsam vorwärts kommen.
Mit Zitat antworten
  #24 (permalink)  
Alt 21.03.2018, 09:59
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.836
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
So lese ich bei Dir vor allem implizit heraus "Andreas, was Dir vorschwebt ist völlig sinnloser Quatsch, ich kann in keiner Weise verstehen, wie Du darauf kommst."
Naja, ist es auch. Aber ich habe bereits an etlichen Stellen geschrieben, dass ich deine Gedanken gut verstehe und früher teilweise auch selbst hegte. Das scheinst du überlesen zu haben oder du magst es nicht wahrnehmen.

Ich kann dir nur sagen, für mich ist das eine sachliche Diskussion. Auch wenn vieles Unsinn ist was du vorschlägst, aber ich kenne diese Gedanken, ansonsten würde ich mir die Mühe nicht machen dir zu erklären wo du falsch denkst.
Mit Zitat antworten
  #25 (permalink)  
Alt 21.03.2018, 13:26
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 403
chorn wird schon bald berühmt werden
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
Meine Vermutung war, dass es durchaus objektiv messbare Merkmale für Lesbarkeit von Code gibt.
Sehe ich genau so, unter meinen Top 10 sind dabei:

- Nachvollziehbarer Code mit rotem Faden
- durch: Logik im Code abspeichern, nicht im Gehirn
- durch: keine durchnummerierten Variablen - auch nicht als Array-Keys.
Mit Zitat antworten
  #26 (permalink)  
Alt 22.03.2018, 06:37
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.221
AndreasB wird schon bald berühmt werden
Standard

@protonenbeschleuniger
Ich nehme sehr wohlwollend wahr, dass Du Dir die Zeit für Deine Antworten nimmst. Dafür danke ich Dir sehr.
Und Deine Kritik kommt an und wirkt. Ich brauche aber Zeit um das alles zu verarbeiten.

Durch Deine Beispiele zum assoziativen Array habe ich nun besser verstanden, was seine Vorteile sind. Eine Diskussion weiterer Details wäre unangebracht, dafür fehlen mir Programmierkenntnisse.

Ja, Du hast wohl auch Recht mit Deiner Kritik meines Hinterfragens in dieser Anfängerphase.

Du schriebst an anderer Stelle, dass Du eventuell ein minimalistisches Word-Theme schreiben wirst. Lasse es mich bitte wissen, falls es dazu kommt.

Vielen Dank an alle hier im Thread, auch für eure Geduld.
__________________

Mit Zitat antworten
  #27 (permalink)  
Alt 22.03.2018, 08:34
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.836
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
Du schriebst an anderer Stelle, dass Du eventuell ein minimalistisches Word-Theme schreiben wirst. Lasse es mich bitte wissen, falls es dazu kommt.
"Dazu gekommen" war es schon, ich hatte nur keinen Zugriff bisher.

Also. Ein WP Theme besteht mindestens aus: style.css, index.php, header.php, sidebar.php, footer.php und einer functions.php

Diese muss du in ein Verzeichniss packen im Ordner ../wp-content/themes/ deiner WP Installation. Dann kannst du dieses Theme im Backend aktivieren und du hast dein simples Theme fast frei von unnötigen (du musst noch im Backend in den Nutzereinstellungen die Werkzeugleiste deaktivieren)

Hier die Dateien:

style.css

die CSS Deklarationen

HTML-Code:
/*
Theme Name: Simple
Theme URI: ....
Description: Ein einfaches WP Theme 
Version: 1.0
Author: ....
Author URI: ....
*/
body {
	background-color: #fff;
	color: #000;
	font-family: 'Courier new', Courier, monospace;
}
index.php

steuert die Ausgabe der "Posts" (nicht der "pages")

PHP-Code:
<?php get_header(); ?>
<!-- Start: Index.php -->
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<div class="post">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <?php the_content('[... weiterlesen]');?>
</div>
<?php endwhile; else: ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
<!-- Ende: Index.php -->

<?php get_sidebar(); ?>

<?php get_footer(); ?>
header.php

der Ort der Meta Angaben

PHP-Code:
<!doctype html>
<html lang="de">
<head>
    <title><?php wp_title('');?> [<?php bloginfo('name');?>]</title>
    <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
    <meta name="description" content="<?php bloginfo('description'); ?>" >
    <link href="<?php bloginfo('stylesheet_url'); ?>"  title="Standard"  rel="stylesheet"  type="text/css">
</head>
<body>
<h1><a title="Startseite" href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a></h1>
sidebar.php

hier wird das Menu erzeugt, dafür gibt es aber X-andere Möglichkeiten.

Die einfachste wäre das builtin Menü zu nutzen. Da bin ich aber kein Experte und weiss nicht, wie man dies möglichst einfach einbinden könnte. Daher hier die Methode die einfach nur die letzten 10 "posts" im Menü auflistet.

PHP-Code:
<!-- Start: sidebar.php -->
<div id="menu">

<div>
    <h2>Das Neuste</h2>
    <ul>
        <?php  
            wp_get_archives
('type=postbypost&limit=10'); 
        
?>
    </ul>
</div>

<?php if ( !dynamic_sidebar() ) : ?><?php endif; ?>

</div>
<!-- End:sidebar.php -->
footer.php

könnte man sich hier auch sparen. Aber wegen der Erweiterbarkeit und Flexibilität, wenn man wirklich ein komplettes Template machen will ist es sinnvoll.

PHP-Code:
<!-- (footer.php) -->
<?php wp_footer(); ?>
</body>
</html>
Dann benötigt man noch eine php Datei um unnötiges zu entfernen, da die vielen Millionen User z.b. gerne JQuery nutzen ist das per Default aktiviert. Das läßt sich aber entfernen:

PHP-Code:
<?php

// REMOVE EMOJI ICONS
remove_action('wp_head''print_emoji_detection_script'7);
remove_action('wp_print_styles''print_emoji_styles');

// Remove jQuery Migrate Script from header and Load jQuery from Google API
function crunchify_stop_loading_wp_embed_and_jquery() {
    if (!
is_admin()) {
        
wp_deregister_script('wp-embed');
        
wp_deregister_script('jquery');  // Bonus: remove jquery too if it's not required
    
}
}
add_action('init''crunchify_stop_loading_wp_embed_and_jquery');
Mit Zitat antworten
  #28 (permalink)  
Alt 22.03.2018, 11:01
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.221
AndreasB wird schon bald berühmt werden
Standard

@protonenbeschleuniger

Echt nett von Dir

Das Erstellen des Themes und Aktivieren hat auf Anhieb geklappt. Cool!

Wirklich schön minimalistisch!

Danke! Wenn Du mal in Berlin sein solltest, lade ich Dich gerne auf ein Bier ein

Der letzte Teil des von Dir geposteten PHP-Codes zum Entfernen einiger Funktionen: welcher Dateiname muss dafür bitte vergeben werden?


Dann kann es jetzt also losgehen mit kleinen Aufgaben, die ich mir selber stelle.

Vor allem muss ich mir ein gutes PHP-Tutorial/Buch suchen.
__________________

Mit Zitat antworten
  #29 (permalink)  
Alt 22.03.2018, 12:26
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.836
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Oh, vergessen: functions.php

Die ist aber nicht notwendig. Du müsstest aber sehen, dass etwas Javascript Code im HTML erscheint der nicht aus dem Template kommt. Was nicht schlimm wäre, wenn du z.b. sowieso vor hast mit jQuery zu arbeiten.
Mit Zitat antworten
Sponsored Links
  #30 (permalink)  
Alt 22.03.2018, 13:25
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.221
AndreasB wird schon bald berühmt werden
Standard

Danke. functions.php ist jetzt auch drin.

Mal sehen, ob mir der Feinschliff hin zu
https://borumat.de/-/ge/minimal
gelingen wird.

* Entfernen des gesamten Codes zwischen <!-- (footer.php) --> und </body>

* Erzeugen eines Menüs mit <nav><a></a></nav> (McMurphy hatte kürzlich erwähnt, dass man ja die ul weglassen kann, schöne Idee.)

* relative Links zur Basis statt absolute

* ...
__________________

Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten mazzo CSS 10 05.04.2012 17:32
grafische Navigation horizontal zentrieren, klappt nicht lila_3 CSS 4 30.11.2010 10:25
IE verschiebt Navi Menü macmensa CSS 7 17.08.2009 16:45
Probleme mit horizontaler Navi rechts lila_3 CSS 2 14.07.2009 21:36
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:02 Uhr.