Ankündigung

Einklappen
Keine Ankündigung bisher.

Notice : Undefined property

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Zitat von hellbringer Beitrag anzeigen

    Das hängt davon ab wie der Webserver konfiguriert ist. Am besten du fragst denjenigen, der das gemacht hat.
    Ich habe meinen eigenen Webserver (nginx) der über OMV läuft, und ich meine zu wissen das ich manuell keine Log-Datei festgelegt habe. Deswegen die Frage. Aber klar dann muss ich das manuell machen um Log-Daten angezeigt zu bekommen.

    Kommentar


    • #32
      Zitat von ChookaP Beitrag anzeigen
      Ich habe meinen eigenen Webserver (nginx) der über OMV läuft, und ich meine zu wissen das ich manuell keine Log-Datei festgelegt habe. Deswegen die Frage. Aber klar dann muss ich das manuell machen um Log-Daten angezeigt zu bekommen.
      Ich kenn mich mit nginx nicht aus und ich bin eigentlich auch kein Server-Admin, sondern nur Programmierer. Von daher kann ich dir hier nicht weiterhelfen. Wenn es darum geht deinen Webserver richtig zu konfigurieren, wäre das ein eigener Thread in einem Administrator-Forum.

      Oder du installierst dir zum Testen ein All-in-one-Paket wie z.B. XAMPP. Da ist fast alles vorkonfiguriert und damit haben auch die meisten PHP-Programmierer Erfahrung.

      Kommentar


      • #33
        Ja, ich kenne XAMPP. Fehler gefunden: Ich habe in der *.phtml anstatt: "<?= ... ?>", "<?php ... ?> geschrieben.... jetzt gehts. Mein Fehler. Über XAMPP hatte ich wenigsten folgende Ausgabe:

        title ?>


        content ?>
        .

        Das hat mich auf die Idee gebracht, es könnte ja was mit meiner *.phtml Datei nicht stimmen...

        Über NGINX hatte ich nur einen Whitescreen. So, jetzt gehts, alles klar, danke. Dann schau ich mal wie ich das umsetze. Gruß.

        Kommentar


        • #34
          Die anderen Funktionen habe ich schon verstanden aber was macht diese Funktion?
          PHP-Code:

           
          public function __get($name) {
                  if (!
          array_key_exists($name$this->vars)) {
                      throw new 
          Exception('Missing variable: ' $name);
                  }
                  return 
          htmlspecialchars($this->vars[$name], ENT_COMPAT$this->encoding);
              } 
          Ist das "__get" in TemplateContext.php dieses "__get": http://php.net/manual/de/mongoclient.get.php ? Ist das magisch, oder wie dat heißt?

          Kommentar


          • #35
            Zitat von ChookaP Beitrag anzeigen
            Ist das "__get" in TemplateContext.php dieses "__get": http://php.net/manual/de/mongoclient.get.php ? Ist das magisch, oder wie dat heißt?
            http://php.net/manual/en/language.oop5.magic.php

            Es ist eine schnell zusammengetippte Klasse, daher __get(). Wenns sauberer sein soll, würde ich das ArrayAccess-Interface implementieren. Bin kein Fan dieser magischen Getter und Setter, da sie schwerer nachvollziehbar sind und Kollisionen ermöglichen.

            Kommentar


            • #36
              Zitat von hellbringer Beitrag anzeigen

              Für sowas nimmt man eine Template-Engine. Das kann auch eine schlanke selbstgebastelte Klasse sein:

              PHP-Code:
              class TemplateContext {
              private 
              $vars = [];
              private 
              $encoding;

              public function 
              __construct($encoding 'UTF-8') {
              $this->encoding $encoding;
              }

              public function 
              __get($name) {
              if (!
              array_key_exists($name$this->vars)) {
              throw new 
              Exception('Missing variable: ' $name);
              }
              return 
              htmlspecialchars($this->vars[$name], ENT_COMPAT$this->encoding);
              }

              public function 
              assignVars(array $vars) {
              foreach (
              $vars as $name => $value) {
              $this->vars[$name] = $value;
              }
              }

              public function 
              assignVar($name$value) {
              $this->vars[$name] = $value;
              }

              public function 
              render($templatePath) {
              if (!
              is_readable($templatePath)) {
              throw new 
              Exception('Cant read template: ' $templatePath);
              }

              $content '';
              ob_start();

              try {
              require 
              $templatePath;
              $content ob_get_contents();
              } catch (\
              Exception $exception) {
              throw new 
              Exception($exception->getMessage() . ' (in template ' $templatePath ')');
              } finally {
              ob_end_clean();
              }

              return 
              $content;
              }

              template.phtml:
              PHP-Code:
              <h1><?= $this->title ?></h1>
              <p><?= $this->content ?></p>
              PHP-Code:
              $context = new TemplateContext();
              $context->assignVar('title''Test page');
              $context->assignVar('content''Lorem ipsum dolor sit amet, consetetur sadipscing elitr');

              echo 
              $context->render('template.phtml'); 
              Geht super, danke. Die render() Funktion habe ich schon eingebunden. Den Rest checke ich so ab.

              Das:

              PHP-Code:
              abstract class ViewController {

              /**
              * @var TemplateContext
              */
              public $view;

              public function 
              __construct() {
              $this->view = new TemplateContext();
              }

              }


              /**
              * Class MyController
              */
              class MyController extends ViewController {

              /**
              * @param UserRepository $repository
              * @throws Exception
              */
              public function testAction(UserRepository $repository) {
              $userList $repository->getUsers();
              $this->view->assignVar('userList'$userList);
              $this->view->render('test.phtml');
              }


              versuche ich auch noch (sinnvoll) reinzuheben, super, danke. Hab ich was zu knabbern .

              Für das:
              Code:
               ArrayAccess-Interface
              , brauch ich glaub ich bischen länger..., mal sehen.

              Kommentar

              Lädt...
              X