Naps: PHP Validation Klasse Installation

Hi,

vielleicht kennt ja Jemand von euch PHP Validation. Ich hab bis jetzt noch nie mit Namespaces gearbeitet und habe ein paar Probleme bei der Installation. Auf der o.g. Website steht:
"Respect\Validation is namespaced, but you can make your life easier by importing a single class into your context:"

use Respect\Validation\Validator as v;

Was bedeutet das genau?
Ich verwende PHP 5.3

MfG Naps

  1. Hallo,

    use Respect\Validation\Validator as v;

    mit dieser Anweisung kannst Du die Klasse "Validator" direkt ueber den Namen "v" ansprechen, ohne den gesamten Namespace-Pfad angeben zu muessen.

    Anstatt ..

    Respect\Validation\Validator::numeric()->validate($number);

    .. genuegt durch das Importieren diese Anweisung:

    v::numeric()->validate($number);

    Siehe auch:
    PHP Manual: Using namespaces: Aliasing/Importing

    Gruss,
    Worf

    1. Hallo,

      use Respect\Validation\Validator as v;

      mit dieser Anweisung kannst Du die Klasse "Validator" direkt ueber den Namen "v" ansprechen, ohne den gesamten Namespace-Pfad angeben zu muessen.

      Anstatt ..

      Respect\Validation\Validator::numeric()->validate($number);

      .. genuegt durch das Importieren diese Anweisung:

      v::numeric()->validate($number);

      Siehe auch:
      PHP Manual: Using namespaces: Aliasing/Importing

      Ok aber einbinden muss ich die Klasse doch trotzdem oder?

      1. Hallo,

        Ok aber einbinden muss ich die Klasse doch trotzdem oder?

        du meinst via include/require? Ja.
        Auf der Seite ist angegeben, dass Du auch einen Autoloader nach dem Standard PSR-0 verwenden kannst. Wenn Du einen solchen also schon einsetzt, erübrigt sich das manuelle Einbinden der Klasse.

        Gruss,
        Worf

        PS: Bitte keine Vollzitate. Danke.

      2. Moin!

        Hallo,

        use Respect\Validation\Validator as v;

        mit dieser Anweisung kannst Du die Klasse "Validator" direkt ueber den Namen "v" ansprechen, ohne den gesamten Namespace-Pfad angeben zu muessen.

        Anstatt ..

        Respect\Validation\Validator::numeric()->validate($number);

        .. genuegt durch das Importieren diese Anweisung:

        v::numeric()->validate($number);

        Siehe auch:
        PHP Manual: Using namespaces: Aliasing/Importing

        Ok aber einbinden muss ich die Klasse doch trotzdem oder?

        Der schlauere Weg wäre, die Bibliothek mit Composer zu installieren. Das erzeugt dir den Autoloader von alleine, du kannst mit dem Autoloader auch deine eigenen Klassen laden lassen, und wenn du noch weitere Bibliotheken brauchst, sind die ruckzuck eingebunden und aktualisiert.

        Schritte:

        1. Du installierst dir Composer nach Anleitung. Idealerweise dorthin, wo eine PATH-Angabe auf der Kommandozeile schon hinzeigt.

        2. Du schreibst eine Datei "composer.json" ins Hauptverzeichnis deines Projekts:

        {  
            "require" : {  
                "respect/validation" : "~0.4"  
            }  
        }  
        
        

        3. Du führt "composer install" aus. Das kann ggf. auch "php composer.phar install" heißen, oder noch aufwendiger sein mit Pfadangabe, wenn du Composer nicht in den Pfad deiner Kommandozeile tust.

        4. In deinem Code bindest du jetzt an zentraler Stelle den Composer-Autoloader ein:

        require "vendor/autoload.php";

        5. Nach dieser Zeile stehen dir alle Klassen der Bibliothek zur Verfügung, du kannst sie ohne weiteres Einbinden direkt nutzen.

        - Sven Rautenberg

        1. Moin!

          Hallo,

          use Respect\Validation\Validator as v;

          mit dieser Anweisung kannst Du die Klasse "Validator" direkt ueber den Namen "v" ansprechen, ohne den gesamten Namespace-Pfad angeben zu muessen.

          Anstatt ..

          Respect\Validation\Validator::numeric()->validate($number);

          .. genuegt durch das Importieren diese Anweisung:

          v::numeric()->validate($number);

          Siehe auch:
          PHP Manual: Using namespaces: Aliasing/Importing

          Ok aber einbinden muss ich die Klasse doch trotzdem oder?

          Der schlauere Weg wäre, die Bibliothek mit Composer zu installieren. Das erzeugt dir den Autoloader von alleine, du kannst mit dem Autoloader auch deine eigenen Klassen laden lassen, und wenn du noch weitere Bibliotheken brauchst, sind die ruckzuck eingebunden und aktualisiert.

          Schritte:

          1. Du installierst dir Composer nach Anleitung. Idealerweise dorthin, wo eine PATH-Angabe auf der Kommandozeile schon hinzeigt.

          2. Du schreibst eine Datei "composer.json" ins Hauptverzeichnis deines Projekts:

          {

          "require" : {
                  "respect/validation" : "~0.4"
              }
          }

          
          >   
          > 3. Du führt "composer install" aus. Das kann ggf. auch "php composer.phar install" heißen, oder noch aufwendiger sein mit Pfadangabe, wenn du Composer nicht in den Pfad deiner Kommandozeile tust.  
          >   
          > 4. In deinem Code bindest du jetzt an zentraler Stelle den Composer-Autoloader ein:  
          >   
          > `require "vendor/autoload.php";`{:.language-php}  
          >   
          > 5. Nach dieser Zeile stehen dir alle Klassen der Bibliothek zur Verfügung, du kannst sie ohne weiteres Einbinden direkt nutzen.  
          >   
          >  - Sven Rautenberg  
            
          Perfekt danke für die schöne Erklärung!  
          LG, Naps