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 學習編程,第一步一定是把代碼敲下來,請新建一個文檔叫作autoload.php,并把上面的代碼復制進去。 然后在同級目錄新建一個TestClass.php文件,將以下代碼放入TestClass.php中: <?php 接下來,你可以通過網(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ù)格式
這個方法在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 |
|
來自: 硬核項目經(jīng)理 > 《待分類》