Modern PHP(二)標準

一句話兒發表於2020-02-26
psr-1

php標籤: <?php
編碼:utf8
自動載入:名稱空間和類需滿足psr4的規範
類的名稱:駝峰式 CameCase
常量:全部大寫,下劃線分開 GREAT_SCORE
方法名:首字母小寫駝峰,cameCase

psr-2

縮排:四個空格 代替 tab
關鍵字:統一使用小寫,false true null
名稱空間:名稱空間後需空一行,use後面也空一行
方法和類括弧:統一單獨一行

psr-3

日誌記錄介面
日誌類需實現 Psr\Log\LoggerInterface介面
日誌可使用成熟第三方擴充 monolog/monolog,而不必重複寫

psr-4 自動載入器

composer會生成自動載入器,而不需要手動編寫

手寫自定義載入器
spl_autoload_register(function($class){
    //專案名稱空間字首
    $prefix = 'Foo\\Bar\\';

    //名稱空間字首對應的基目錄
    $base_dir = __DIR__.'/src/';

    $len = strlen($prefix);

    //例項化的類的名稱空間,是否和專案名稱空間一致(不一致則讓其他載入器載入)
    if(strncmp($prefix, $class, $len) !== 0){
        return;
    }

    $relative_class = substr($class, $len);

    $file = $base_dir.str_replace('\\', '/', $relative_class).'.php';

    if(file_exists($file)){
        require $file;
    }
});

$class = new \Foo\Bar\Student();
本作品採用《CC 協議》,轉載必須註明作者和本文連結
寫的不好,就當是整理下思緒吧。

相關文章