日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

深入學習Composer原理(一)

 硬核項目經(jīng)理 2021-05-31

Composer作為PHP的包管理工具,為PHPer們提供了豐富的類庫,并且讓PHP重煥新生,避免被時代淘汰的悲劇??梢哉f,Composer和PHP7是現(xiàn)在PHP開發(fā)者的標配,如果你還沒用過Composer或者在PHP7的環(huán)境下工作,那么還真是有點落伍了哦!

這次的系列文章將一步步的解析Composer原理,不會去講解Composer的命令或者如何使用,這方面的內(nèi)容您可以穩(wěn)步Composer中文網(wǎng):https://www./


第一篇主要了解一個簡單的函數(shù):__autoload()魔術(shù)方法

<?php

$m = new TestClass();
$m->show();

function __autoload($className)
{
require $className . '.php';
}

學習編程,第一步一定是把代碼敲下來,請新建一個文檔叫作autoload.php,并把上面的代碼復制進去。

然后在同級目錄新建一個TestClass.php文件,將以下代碼放入TestClass.php中:

<?php

class TestClass
{
public function show()
{
echo 'we are family!';
}
}

接下來,你可以通過網(wǎng)頁形式訪問autoload.php,或者我更推薦的直接在命令行運行:php ./autoload.php

神奇的事情發(fā)生了,我們并沒有在autoload.php上方顯式的使用 require() 和 include 之類的函數(shù),而是在__autoload()中使用了 require $className . '.php'; 這段語句,就完成了TestClass.php文件的加載。

沒錯,我估計您也猜到了,__autoload()這個魔術(shù)方法的作用就是在調(diào)用的類如果沒有加載的情況下,就進入到這個方法中。

在PHP官方文檔的解釋中是這樣定義的

嘗試加載未定義的類

函數(shù)格式

__autoload( string $class ) : void

  • 參數(shù)$class是沒有加載類的類名,也就是上方的TestClass

  • 返回值是空

  • 一般在函數(shù)內(nèi)部會根據(jù)$class去加載指定文件


這個方法在PHP7.2后會提示DEPRECATED,在未來的版本中可能會刪除。我們將再下一篇文章中講解的spl_autoload_register()函數(shù)將是自動加載的未來。使用自動加載函數(shù)的好處:不需要在文件頂部一大串的require。

嗯,已經(jīng)了解了__autoload()是干嘛的,但是這和Composer有什么關(guān)系?

別急,任何牛X的技術(shù)總有一個基礎(chǔ),沒有這個條件這項技術(shù)就很難實現(xiàn),就像人工智能,雖然早就有了各種算法和理論,但在大數(shù)據(jù)技術(shù)盛開之前總是無法落地。因為機器學習需要的大量數(shù)據(jù)如何存取實在是個難點。在這里,Composer就像是AI技術(shù),而__autoload()方法就是那個基石。

完整源碼:GitHub

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多