Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Registrierung und das automatische Laden in PHP-Klassen

So verwenden Sie die Registrierung und das automatische Laden in PHP-Klassen

伊谢尔伦
伊谢尔伦Original
2017-07-01 09:52:46955Durchsuche

Dieser Artikel ist eine detaillierte Analyse und Einführung in die Registrierung von PHP-Klassen und das automatische Laden. Freunde in Not können sich wie folgt auf das Projektverzeichnis

beziehen:



1. Platzieren Sie die Klassen, die registriert werden müssen, in einem Array

Der Code lautet wie folgt:

<?php
final class Utils {
    private function construct() {
    }
    public static function getClasses($pre_path = &#39;/&#39;) {
        $classes = array(
                &#39;DBConfig&#39; => $pre_path.&#39;DBConfig/DBConfig.php&#39;,
                &#39;User&#39; => $pre_path.&#39;Model/User.php&#39;,
                &#39;Dao&#39; => $pre_path.&#39;Dao/Dao.php&#39;,
                &#39;UserDao&#39; => $pre_path.&#39;Dao/UserDao.php&#39;,
                &#39;UserMapper&#39; => $pre_path.&#39;Mapping/UserMapper.php&#39;,
        );
        return $classes;
    }
}
?>


2. Registrierungsarray
Hinweis:
Die Pfade der Klassen in Schritt 1 sind relativ zu init. php, nicht relativ zu Utils, das liegt daran, dass wir die automatische Ladefunktion spl_autoload_register in init.php verwenden, um die Klasse require

zu verwenden. Der Code lautet wie folgt:

<?php
require_once
 &#39;/Utils/Utils.php&#39;;
final class Init {
    /**
     * System config.
     */
    public function init() {
        // error reporting - all errors for development (ensure you have
        // 
display
_errors = On in your php.ini file)
        
error_reporting
 ( E_ALL | E_STRICT );
        mb_internal_encoding ( &#39;UTF-8&#39; );
        //registe classes
        spl_autoload_register ( array ($this,&#39;loadClass&#39; ) );
    }
    /**
     * Class loader.
     */
    public function loadClass($name) {
        $classes = Utils::getClasses ();
        if (! 
array_key_exists
 ( $name, $classes )) {
            die ( &#39;Class "&#39; . $name . &#39;" not found.&#39; );
        }
        require_once $classes [$name];
    }
}
$init = new Init ();
$init->init ();
?>


3. In diesem Beispiel lautet der require init.php

-Code in test.php wie folgt:

<?php
require_once &#39;Init.php&#39;;
$dao = new UserDao();
$result = $dao->findByName(&#39;zcl&#39;);
?>


Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Registrierung und das automatische Laden in PHP-Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn