我創建了自己的mvc模型,因此我必須包含我所有的模型和控制器類。在mvc模型中包含文件php
眼下每個我需要在控制器我使用一個模型時間:
require_once('myModel.php');
有點像Java中
進口,但我有一個問題,它是一個很好的解決方案,以繼續這條路 ? 我希望在代碼的開始部分包含所有模型和控制器,但恐怕這個解決方案太重了。
謝謝
我創建了自己的mvc模型,因此我必須包含我所有的模型和控制器類。在mvc模型中包含文件php
眼下每個我需要在控制器我使用一個模型時間:
require_once('myModel.php');
有點像Java中
進口,但我有一個問題,它是一個很好的解決方案,以繼續這條路 ? 我希望在代碼的開始部分包含所有模型和控制器,但恐怕這個解決方案太重了。
謝謝
通常我不會推薦你創建你自己的框架,但是如果你堅持或想爲學習目的而做,PHP社區創建FIG(Framework Interop Group)來維護框架之間的一致性,以及應該如何處理。
您試圖解決的問題稱爲自動加載,它也記錄爲AS PSR-0標準,https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md,有一個很好的閱讀。
這裏是PSR-0標準的自動加載的例子:PHP - most lightweight psr-0 compliant autoloader
基本上就意味着你namescape路徑會告訴到哪裏尋找文件。
例如你想在bootstrap.php中獲得BussinessObject:
//MVC/Models/BussinessObject.php
namespace MVC/Models;
class BussinessObject {
}
//MVC/bootstrap.php
namespace MVC;
use MVC/Models/BussinessObject;
$BussinessObject = new BussinessObject()
然後自動加載磁帶機將查找在MVC /模型/ BussinessObject.php文件,通話需要使用該路徑。
最好的方法應該是隻在真正需要文件時才包含文件。 由於這不經常實用,因此您應該嘗試在應用程序init中僅包含包含您使用的基本功能的文件。
爲什麼不使用CakePHP,codeignator,Laravel等MVC框架。爲什麼你想不必要地包含所有模型。 –
@AmarBanerjee,你真的看過你提到的框架是如何實現自動加載的嗎? [Cake](https://github.com/cakephp/cakephp/blob/master/lib/Cake/Core/App.php#L534),[CI](https://github.com/EllisLab/CodeIgniter/blob /develop/system/core/Loader.php)和[Laravel](https://github.com/laravel/framework/blob/master/src/Illuminate/Support/ClassLoader.php)。即使對laravel的攻擊性不大,也只是一堆封裝在命名空間中的靜態函數(它看起來像一個類)。那些代碼是可怕的。你不應該推薦他們去新手。 –