W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
首先,PhalApi的自動加載是簡單的;其次,PhalApi不強制只使用我們框架的機制。
有些框架,單單在類文件的自動加載這一塊就弄得非常復(fù)雜,以致開發(fā)同步需要在這些框架添加一些自己的類代碼時,往往不知要怎么引入!甚至明明用引入了卻又不見得生效!
而在PhalApi,我們則是: 簡單、統(tǒng)一、規(guī)范。
PEAR包的類文件路徑和類名映射非常簡單,如下圖:
或者查看(里面有很好的代碼風(fēng)格編寫說明): Autoloading Standard
而PhalApi則更簡單,我們暫時還不使用命名空間,所以namespace這一塊省去。例如:
Api_User
Domain_User
Model_User
對應(yīng)以下路徑的文件:
.
|-- Api
| `-- User.php
|-- Domain
| `-- User.php
|-- Model
| `-- User.php
再舉一個模擬的示例,如類Api_Game_User_Equitment對應(yīng)以下文件路徑:
./Api/Game/User/Equitment.php
此外,還需注意區(qū)分大小寫。
然后在我們準(zhǔn)備了這些類和文件后,我們怎么才能讓這些類被框架所自動加載呢?
我們提供的方式是: 掛靠式自動加載 。
熟悉Linux系統(tǒng)的同學(xué)可能很容易明白,還沒接觸到Linux的同學(xué)也是可以很快理解的。這里稍微說明一下。
所謂的 掛靠 就是把你代碼的目錄放在項目的目錄下(或者其他任何一個地方),隨后簡單地將此目錄添加到自動加載器即可。如上面的:
DI()->loader->addDirs('Demo');
當(dāng)有多個目錄時,可以這樣:
DI()->loader->addDirs(array('Demo', 'Library'));
需要注意的是,上面相對路徑的都需要放置在應(yīng)用項目的目錄API_ROOT下面。如果是單個文件的引入,則可以使用絕對路徑。下面分別簡單說明。
通過PhalApi_Loader::addDirs()方式掛靠的路徑,都是強制在目錄API_ROOT下面,即下面的三種方式是等效的(在Linux系統(tǒng)上):
//路徑:API_ROOT/Demo
DI()->loader->addDirs('Demo');
//路徑:API_ROOT/./Demo
DI()->loader->addDirs('./Demo');
//路徑:API_ROOT/Demo
DI()->loader->addDirs('/Demo');
如果需要掛靠的目錄不在項目目錄下,在Linux可以通過軟鏈來解決。
對于單個文件的引入,可以通過PhalApi_Loader::loadFile()來引入。注意以下兩種寫法的區(qū)別:
//路徑:API_ROOT/Demo/Tool.php
DI()->loader->loadFile('Demo/Tool.php');
//路徑:/path/to/Demo/Tool.php
DI()->loader->loadFile('/path/to/Demo/Tool.php');
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: