>백엔드 개발 >PHP 튜토리얼 >PHP 클래스에서 등록 및 자동 로딩을 사용하는 방법

PHP 클래스에서 등록 및 자동 로딩을 사용하는 방법

伊谢尔伦
伊谢尔伦원래의
2017-07-01 09:52:46967검색

이 글은 PHP 수업 등록 및 자동 로딩에 대한 자세한 분석 및 소개입니다. 필요한 친구는 다음과 같은

프로젝트 디렉토리를 참조할 수 있습니다.



1. 등록해야 합니다. 배열에 넣으세요

코드는 다음과 같습니다:

<?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. Register array
참고:
1단계의 클래스 경로는 init.php에 상대적인 경로가 아닙니다. Utils에 비해 직설적으로 말하면 이는 init.php의 자동 로딩 함수 spl_autoload_register를 사용하여 다음과 같이 require 클래스

코드를 얻기 때문입니다:

<?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. test.php에서

코드는 다음과 같습니다:

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


위 내용은 PHP 클래스에서 등록 및 자동 로딩을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.