Type Hinting in PHP: Ein Experiment.

Tags:
Seite:
1
2

TypeHintMe

Das Puzzle der ersten Seite hab ich unter dem äusserst kreativen Namen TypeHintMe zusammengesetzt. Es ist eher als Proof-of-Concept zu verstehen und somit nicht ausreichend für produktive Arbeiten getestet. Aber probiert es einfach selbst aus. PHP 5.3 wird vorausgesetzt.

Der Code ist frei auf GitHub verfügbar und über Feedback würde ich mich sehr freuen. Ihr könnt entweder nur die TypeHintMe.phar herunterladen und einbinden oder, falls ihr was am Code machen wollt, das gesamte Repository saugen und die build.php includen.

Hier ein Anwendungsbeispiel:

namespace App;
use BigWhoop\TypeHintMe;

class Auth
{
    /**
     * @param string $username
     * @param string $password
     * @param bool|int $regenerateSessionId
     */
    public function authenticate($username, $password, $regenerateSessionId)
    {}
}

require 'TypeHintMe.phar';

$auth = new Auth();
$auth->authenticate('Philippe', 'Gerber', 1.5);    // No warning

$auth = new TypeHintMe\ObjectProxy($auth);
$auth->authenticate('Philippe', 'Gerber', true); // No warning
$auth->authenticate('Philippe', 'Gerber', 1);    // No warning
$auth->authenticate('Philippe', 'Gerber', 1.5);  // Warning: Argument 3...

Falls ihr auch den Constructor überwachen wollt, müsst ihr wie folgt vorgehen:

$constructorParams = array('alwaysRegenerateSessionId' => true);
$auth = TypeHinteMe\ObjectProxyFactory::create('App\Auth', $constructorParams);

Optionen

BigWhoop\TypeHintMe\ObjectProxy kennt momentan die folgenden Optionen, die als assoziatives Array an den Constructor übergeben werden können:

Über Kritik und Feedback freu ich mich! :]

Seite:
1
2

Ähnliche Artikel

Kommentare