(1)自動加載models——php5風格
使用這個技巧以後,我們將能夠直接創建這個model對象。
這個代碼是簡潔的並且容易理解對象。
使用這個技巧以後會有2個影響。首先你不再需要繼承model類了。
這個技巧
我們需要做的就是添加一個php5風格的 autolader 函數
添加這些代碼到system/application/config/config.php:
<?php
// ...
function __autoload($class) {
if (file_exists(APPPATH."models/".strtolower($class).EXT)) {
include_once(APPPATH."models/".strtolower($class).EXT);
}
}
?>
如果你也有興趣運用這個技巧到controller,你只需要添加以下代碼來代替上面的代碼。
<?php
// ...
function __autoload($class) {
if (file_exists(APPPATH."models/".strtolower($class).EXT)) {
include_once(APPPATH."models/".strtolower($class).EXT);
} else if (file_exists(APPPATH."controllers/".strtolower($class).EXT)) {
include_once(APPPATH."controllers/".strtolower($class).EXT);
}
}
?>
任何時候,你試著使用一個沒有定義的類時候,這個__autoload函數將會被調用,它將會加載這個類文件。
(2)防止model-controller名字沖突
使用這個技巧要達到的目標:
一般來說,模型和控制器你都不會有相同的類名字。讓我先創建一個取名為post的model。
class Post extends Model {
// ...
}
現在你就不能有一個像這樣的url: